我想在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);
但我宁愿在一行中做到这一点。
答案 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() };
您可能想直接使用这些。