-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 に 1 つずつ、合計 3 つの整数を取ります。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());

Colorクラスを見てみましょう。

于 2013-11-05T16:55:10.150 に答える
1

配列としてキャストすることはできませんがColor、そのコンポーネントを配列として取得できます。

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

これらを直接使用したい場合があります。

于 2013-11-05T16:55:43.067 に答える