I'm trying to convert a BufferedImage to an array of bytes but I get every time an exception I have a service that return a bufferImage ,this my code :
BufferedImage bufferedImage = myservice.getImage();
WritableRaster raster = bufferedImage.getRaster();
DataBufferByte data = (DataBufferByte) raster.getDataBuffer();
byte[] fileContent = data.getData();
This code thrown an exception :
java.lang.ClassCastException: java.awt.image.DataBufferInt cannot be cast to java.awt.image.DataBufferByte
How I can do this conversion without using files
You can use
ByteArrayOutputStream
class and write data fromBufferedImage
object using following code,And all of this just in memory without using any disk io or writing to files.