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类型——难道没有一个继承友好的解决方案吗?