5

getRGB(x, y) メソッドの x および y パラメータは何を表していますか? 数値の戻り値は何を表していますか?

DrawingPanel に表示される BufferedImage 内の特定のピクセルの色を識別するにはどうすればよいですか? 理想的には、画像内の単語を「検索」し、この単語に下線またはアウトラインを付けて、関連するハイパーリンクを作成したいと考えています。これらの数値を「赤」、「緑」、「青」などの人間が理解できる色に変換するにはどうすればよいですか?

はい、Color クラスでは、0 ~ 255 のアルファ値が透明から不透明を表すことを理解しています。しかし、これは実際の色に何を意味するのでしょうか? これが意味をなさないかどうかを明確にしていただければ幸いです。読んでくれてありがとう。

4

1 に答える 1

6

x 座標と y 座標はピクセルの位置を表し、x は左から右へ、y は上から下へ (どちらも 0 から始まります)。したがって、(0, 0) は左上のピクセルで、(幅-1, 高さ-1) は右下のピクセルです。

返される整数値には、R、G、B、および (場合によっては) アルファ値が 1 つの int にパックされています。int には 32 ビットが含まれているため、これらのビットのうち 8 ビットが各値に割り当てられることに注意してください。

ただし、整数内でビットをシフトするのが苦手な場合は、整数値を Color のコンストラクターに渡すのが最も簡単です。

int rgba = image.getRGB(coordinates);
Color col = new Color(rgba, true);
int r = col.getRed();
int g = col.getGreen();
...

明らかに、生のピクセル値から単語がどこにあるかを認識することは、まったく別の非常に複雑な問題です。

于 2012-11-22T17:47:44.977 に答える