Java 可写光栅中像素字段的格式

Java 可写光栅中像素字段的格式,java,raster,pixels,Java,Raster,Pixels,在writableRaster类中,有一个方法: public void setPixels(int x, int y, int w, int h, int[] iArray) 在iArray中的何处应存储有关像素的信息 对于像素:233(r)244(g)10(b),它应该如何存储在iArray中 它将是iArray[0]=233,iArray[1]=244,iArray[2]=10 或者i

在writableRaster类中,有一个方法:

public void setPixels(int x,
             int y,
             int w,
             int h,
             int[] iArray)
在iArray中的何处应存储有关像素的信息 对于像素:
233(r)244(g)10(b)
,它应该如何存储在iArray中

它将是
iArray[0]=233
iArray[1]=244
iArray[2]=10

或者
iArray[0]=[24424410]

简短的回答应该是
iArray[0]=233,iArray[1]=244,iArray[2]=10
,而不是
iArray[0]=[24424410]

但是,数据量将取决于
可写光栅的支持内容。考虑下面的例子,我们检索两个<代码> BuffeReDimeS> <代码> <代码> WraveBabraseT/<代码>;一个包含RGB数据,另一个包含ARGB数据。如果我们检索像素值,我们可以看到,对于RGB数据,数组的长度为3,对于ARGB数据,数组的长度为4

代码:

public static void main(String[] args) {
    BufferedImage rgbImage = new BufferedImage(8, 8,
            BufferedImage.TYPE_INT_RGB);
    WritableRaster rgbRaster = rgbImage.getRaster();

    BufferedImage argbImage = new BufferedImage(8, 8,
            BufferedImage.TYPE_INT_ARGB);
    WritableRaster argbRaster = argbImage.getRaster();

    rgbImage.setRGB(0, 0, new Color(255, 125, 1, 16).getRGB());
    argbImage.setRGB(0, 0, new Color(255, 125, 1, 16).getRGB());

    int[] rgb = rgbRaster.getPixel(0, 0, (int[]) null);
    int[] argb = argbRaster.getPixel(0, 0, (int[]) null);
    System.out.print("rgb:");
    for (int i = 0; i < rgb.length; ++i)
        System.out.print(" "+rgb[i]);

    System.out.print("\nargb:");
    for (int i = 0; i < argb.length; ++i)
        System.out.print(" "+argb[i]);
}
rgb: 255 125 1
argb: 255 125 1 16

非常感谢。我想输出的第一个255是Alpha值?但为什么rgb的输出是2551251而不是125116?