【问题标题】:Convert color object to readable array将颜色对象转换为可读数组
【发布时间】:2013-11-16 15:30:43
【问题描述】:

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

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);

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

【问题讨论】:

标签: java arrays colors


【解决方案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 类。

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-02
      • 1970-01-01
      • 2013-03-30
      • 2016-02-15
      • 2011-06-24
      • 1970-01-01
      • 2013-04-05
      相关资源
      最近更新 更多