-1

我想在 Java 中制作图像的负片,但我不确定如何将Color对象转换为可以操作的数组。这是我的代码片段:

Color col;
col = picture.getPixel(x,y).getColor();
//x and y are from a for loop
picture.getPixel(x,y).setColor(~~~);

setColor取三个整数,每个颜色通道 RBG 一个。我想转换Color col为我可以读取的数组。如下所示:

picture.getPixel(x,y).setColor(255-col[0],255-col[1],255-col[2]);

255-col[n]当然会创建像素的负值,Color col但当我想将其作为一个数组访问时,它不是一个数组。如何将Color对象转换为数组?

我可以做类似下面的事情而根本不使用Color对象,

r = picture.getPixel(x,y).getRed(); //r is now an integer 0-255
//repeat the above for green and blue
picture.getPixel(x,y).setColor(r,g,b);

但我更愿意在一行中完成。

4

2 回答 2

1

关于什么 :

int [] arrayRGB = new int[3];
arrayRGB[0] = col.getRed();
arrayRGB[1] = col.getGreen();
arrayRGB[2] = col.getBlue();

或直接:

picture.getPixel(x,y).setColor(255-col.getRed(),255-col.getGreen(),255-col.getBlue());

看一下颜色类。

于 2013-11-05T16:55:10.150 回答
1

您不能将其转换Color为数组,但可以将其组件作为数组获取:

int[] rgb = new int[] { col.getRed(), col.getGreen(), col.getBlue() };

您可能只想直接使用这些。

于 2013-11-05T16:55:43.067 回答