how to convert image to byte array in java? [duplicate] how to convert image to byte array in java? [duplicate] arrays arrays

how to convert image to byte array in java? [duplicate]


If you are using JDK 7 you can use the following code..

import java.nio.file.Files;import java.io.File;File fi = new File("myfile.jpg");byte[] fileContent = Files.readAllBytes(fi.toPath())


BufferedImage consists of two main classes: Raster & ColorModel. Raster itself consists of two classes, DataBufferByte for image content while the other for pixel color.

if you want the data from DataBufferByte, use:

public byte[] extractBytes (String ImageName) throws IOException { // open image File imgPath = new File(ImageName); BufferedImage bufferedImage = ImageIO.read(imgPath); // get DataBufferBytes from Raster WritableRaster raster = bufferedImage .getRaster(); DataBufferByte data   = (DataBufferByte) raster.getDataBuffer(); return ( data.getData() );}

now you can process these bytes by hiding text in lsb for example, or process it the way you want.


File fnew=new File("/tmp/rose.jpg");BufferedImage originalImage=ImageIO.read(fnew);ByteArrayOutputStream baos=new ByteArrayOutputStream();ImageIO.write(originalImage, "jpg", baos );byte[] imageInByte=baos.toByteArray();