gpt4 book ai didi

java - writableRaster 中像素字段的格式

转载 作者:行者123 更新时间:2023-11-30 07:47:02 25 4
gpt4 key购买 nike

在writableRaster类中,有一个方法:

public void setPixels(int x,
int y,
int w,
int h,
int[] iArray)

iArray 中的何处应存储有关像素的信息对于一个像素:233(r)244(g)10(b),它应该如何存储在 iArray 中?

会是iArray[0] = 233iArray[1] = 244iArray[2] = 10iArray[0] = [24424410]

最佳答案

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

但是,数据量将取决于 WritableRaster 支持的内容。考虑以下示例,我们检索两个 BufferedImagesWriteableRaster;一个包含 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

关于java - writableRaster 中像素字段的格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33783808/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com