如何从java中的光栅图像中获取byte[]
?我试过了:
byte[] data = ((DataBufferByte)bufferedImage.getData().getDataBuffer()).getData();
但这会引发ClassCastException
运行时异常:“DataBufferInt无法强制转换为DataBufferByte ”。
感谢您的帮助。
答案 0 :(得分:2)
你可以使用ByteArrayOutputStream获取一个像这样的字节数组: (注意,未经测试的代码)
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write( bufferedImage, "jpg", baos ); // if your image is a jpg
baos.flush();
byte[] imageInByte = baos.toByteArray();
baos.close();
修改的 这个怎么样? 您需要图像的FileInputstream来读取它并将其写入ByteArrayOutputStream
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] buf = new byte[1024];
try {
for (int readNum; (readNum = fis.read(buf)) != -1;) {
bos.write(buf, 0, readNum);
}
} catch (IOException ex) {
//
}
byte[] bytes = bos.toByteArray();