Как преобразовать BufferedImage в byte [] в Java?
Часто вам необходимо преобразовать BufferedImage в байтовый массив, чтобы сохранить изображение в базе данных или для какой-либо другой цели. Некоторое преобразование требуется следующим образом:
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();
пример
Этот класс загрузит изображение из «c: \ image \ mypic.jpg», использует ImageIO.write для записи BufferedImage в объект ByteArrayOutputStream и преобразования его в массив байтов.
import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; /* * @author example * */ public class ImageTest { public static void main(String [] args){ try{ 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(); }catch(IOException e){ System.out.println(e.getMessage()); } } }