簡而言之,應該是iArray[0] = 233, iArray[1] = 244, iArray[2] = 10
而不是iArray[0] = [24424410]
。
但是,數據量取決於WritableRaster
的支持情況。考慮下面的例子,我們檢索兩個BufferedImages
的WriteableRaster
;一個包含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的輸出是255 125 1而不是125 1? – SamW