Преобразование BufferedImage или ImageIO в ByteBuffer

#java #hadoop #mapreduce

#java #hadoop #mapreduce

Вопрос:

Я считываю изображение через BufferedImage, получаю его значение RGB, теперь для обратной записи изображения вместо использования ImageIO я должен записать изображение в HDFS (распределенная файловая система Hadoop). Теперь у меня есть только один вариант для использования, который использует FSDataOutputStream для записи. Итак, возможно ли преобразовать значения RGB из буферизованного изображения в класс ByteBuffer в Java?? Пожалуйста.Справка

Ответ №1:

 BufferedImage originalImage = ImageIO.read(new File("c:\image\mypic.jpg"));
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write( originalImage, "jpg", baos );
baos.flush();
byte[] imageInByte = baos.toByteArray();
baos.close();
ByteBuffer buf = ByteBuffer.wrap(imageInByte);
  

Источник: http://jaypthakkar.blogspot.de/2014/01/convert-bufferedimage-to-bytebuffer.html

Комментарии:

1. для чего нужен baos. сброс ();

2. Это работает. И очистите, прочитайте документацию docs.oracle.com/javase/7/docs/api/java/io /…

3. но должен ли вы думать, что метод flush должен быть размещен над методом write.?

4. Я запускаю его и вижу, что это не имеет никакого значения. но я не уверен, что там есть cass, вам это нужно