How to convert Image to Byte Array in java?

Java provides ImageIO class for reading and writing an image. To convert an image to a byte array –

  • Read the image using the read() method of the ImageIO class.
  • Create a ByteArrayOutputStream object.
  • Write the image to the ByteArrayOutputStream object created above using the write() method of the ImageIO class.
  • Finally convert the contents of the ByteArrayOutputStream to a byte array using the toByteArray() method.


import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
public class ImageToByteArray {
   public static void main(String args[]) throws Exception{
      BufferedImage bImage = File("sample.jpg"));
      ByteArrayOutputStream bos = new ByteArrayOutputStream();
      ImageIO.write(bImage, "jpg", bos );
      byte [] data = bos.toByteArray();