Java 尝试将BuffereImage转换为int数组时出错
我试图将我的Java 尝试将BuffereImage转换为int数组时出错,java,arrays,bufferedimage,Java,Arrays,Bufferedimage,我试图将我的buffereImage转换为整数数组,但我得到以下错误:“java.awt.image.DataBufferByte无法转换为java.awt.image.DataBufferInt” 以下是我的代码: public class Test { public static void main (String [] args) { BufferedImage img = null; try { img = ImageIO.read(new File(
buffereImage
转换为整数数组,但我得到以下错误:“java.awt.image.DataBufferByte
无法转换为java.awt.image.DataBufferInt
”
以下是我的代码:
public class Test {
public static void main (String [] args) {
BufferedImage img = null;
try {
img = ImageIO.read(new File("G.bmp"));
} catch (IOException e) { }
int[] imgarray = ((DataBufferInt)img.getRaster().getDataBuffer()).getData();
}
}
试试这个:
byte[] imgarray = ((DataBufferByte)img.getRaster().getDataBuffer()).getData();
试试这个:
byte[] imgarray = ((DataBufferByte)img.getRaster().getDataBuffer()).getData();
谢谢,这很有效。。但是现在我有了一个字节数组,但我认为字节就足够了:)是的,字节数组通常用来传递任何二进制数据(到流,或者从流中创建图像,反之亦然)。你知道为什么它不表示为img.getWritableData(),甚至只是img.buffer吗?另外,为什么我们需要分别处理每种BuffereImage类型?难道没有一个继承友好的解决方案吗?谢谢,这很有效。。但是现在我有了一个字节数组,但我认为字节就足够了:)是的,字节数组通常用来传递任何二进制数据(到流,或者从流中创建图像,反之亦然)。你知道为什么它不表示为img.getWritableData(),甚至只是img.buffer吗?另外,为什么我们需要分别处理每种BuffereImage类型——难道没有一个继承友好的解决方案吗?