Как преобразовать BufferImage в байты - PullRequest
0 голосов
/ 04 ноября 2011

Как мне преобразовать BufferImage в байты?

Я не могу найти полезную помощь от JDK.

Ответы [ 3 ]

1 голос
/ 04 ноября 2011

Вы имели в виду BufferedImage?

Например:

BufferedImage originalImage = ImageIO.read (новый файл ("c: \ image \ mypic.jpg")); //javax.imageio.ImageIO

ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write( originalImage, "jpg", baos );
baos.flush();
byte[] imageInByte = baos.toByteArray();
baos.close();

// использовать правильную обработку исключений

0 голосов
/ 04 ноября 2011

Если вы ищете способ конвертировать изображение в трехмерную матрицу байтов, где каждая двумерная ячейка соответствует пикселю, а каждый пиксель имеет 3 или 4 байта, не смотрите , чем здесь !

С другой стороны, если вы пытаетесь прочитать его как любой другой файл, просто как поток байтов, используйте FileInputStream.

В любом случае, не стесняйтесь использоватьмой код на github!

https://github.com/skaushik92/File-Encryptor/blob/master/Source/ByteIO.java

0 голосов
/ 04 ноября 2011

BufferedImage к байтовому массиву:

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
...

// O P E N
ByteArrayOutputStream baos = new ByteArrayOutputStream( 1000 );

// W R I T E
ImageIO.write( aBufferedImage, "jpeg" /* "png" "jpeg" ... format desired */,
           baos );

// C L O S E
baos.flush();
byte[] resultImageAsRawBytes = baos.toByteArray();

baos.close();

От: http://mindprod.com/jgloss/imageio.html#TOBYTES

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...