将颜色对象转换为可读数组

时间:2013-11-05 16:51:13

标签: java arrays colors

我想在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);

但我宁愿在一行中做到这一点。

2 个答案:

答案 0 :(得分: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());

查看Color课程。

答案 1 :(得分:1)

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

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

您可能想直接使用这些。

相关问题