Java 设置像素的颜色

Java 设置像素的颜色,java,Java,找到一个例子: raster.setPixel( pf, jj, clr ); 但clr有4个要素: static int[] clr = {0, 0, 0, 255}; 为什么??第四个元素是什么意思?如果没有它,它将无法工作,抛出ArrayIndexOutOfBoundsException。您有一个使用创建的,每个像素需要四个采样 如果不了解更多关于您的应用程序的信息(光栅是用什么确切的SampleModel创建的?),就很难确定第四个组件的含义。很可能是alpha通道,其中包含像素的

找到一个例子:

raster.setPixel( pf, jj, clr );
但clr有4个要素:

static int[] clr = {0, 0, 0, 255}; 
为什么??第四个元素是什么意思?如果没有它,它将无法工作,抛出ArrayIndexOutOfBoundsException。

您有一个使用创建的,每个像素需要四个采样


如果不了解更多关于您的应用程序的信息(光栅是用什么确切的
SampleModel
创建的?),就很难确定第四个组件的含义。很可能是alpha通道,其中包含像素的不透明度,其中0=透明,255=完全不透明。

根据您的评论,您确认了
光栅
如果类型为
可写光栅

首先,为你的例外

ArrayIndexOutOfBoundsException抛出ArrayIndexOutOfBoundsException

从文档中可以看出,如果坐标不在边界内,或者给定数组太小而无法容纳输入,则将抛出AIOOBE

现在,对于表示数组中给定的4个输入的内容

输入阵列为光栅的每个标注栏定义采样。例如,如果调用,
WritableRaster#GetNumands
它应该返回4

但是
波段是什么

这里是一个由3个样本组成的数组所代表内容的视觉表示:


至于第四个波段,我很确定它是阿尔法样本。至少有一个是alpha,但我们无法确认哪个是alpha,因为在创建光栅时可以修改条带的顺序。

第四个参数是透明度值

从 公共无效设置像素(整数x、整数y、整数x射线)

使用输入样本的整数数组在数据缓冲区中设置像素。如果坐标不在边界内,可能会引发ArrayIndexOutOfBoundsException。但是,不能保证显式边界检查

参数:

x-像素位置的x坐标

y-像素位置的y坐标

iArray—整数数组中的输入样本

抛出: NullPointerException-如果iArray为null

ArrayIndexOutOfBoundsException-如果坐标不在边界内,或者如果iArray太小而无法容纳输入


通常,在处理像素时,您将有一个X和Y值,然后是R、G、B的3个参数或R、G、B的4个参数,A,其中A是alpha通道,也称为不透明度。它将采用介于0和255之间的值,就像RGB值一样。

光栅是什么类型的对象?@LaurentiuL。我相信这是一个
可写光栅
。它可能是一个alpha透明度值。0表示完全透明。255意味着没有透明度。如果您不包含它,当setPixel尝试读取它时,可能会出现索引越界异常,但它不存在。谢谢。是的,可写光栅。