Java BufferedImageクラスを使って画像からピクセルの色を抽出する




あの画像きれいだなー。とか。
あの色がほしい~~。とか。
画像を眺めていると思います。ついでに心も洗われますw
そんなこんなで、画像から色を取得したい場合、ペイント等で色を抽出することもできますが、せっかくなのでJavaで色を抽出してみたいと思います。

Youtube版はこちらからどうぞ

Youtubeで動画を公開しました。こちらもぜひぜひ。
こちらでは、もう少し詳しく紹介しています。

画像からピクセルの色を抽出するサンプル

「c:\test\test.jpeg」より、座標(10,20)の色を抽出します。
また、抽出したRGB値、アルファ値をそれぞれ標準出力します。

実行結果

RGB各色と、アルファ値が標準出力されます。

ちなみに、読み込んだ画像はこちらです。
赤丸で囲んだあたりのピクセルから色を抽出しました。

標準出力した色をペイントで塗ってみたのがこちらです。似てますね♪(当たり前)

サンプルの解説

ImageIO#read(String)により読み込んだ画像は、BufferedImageオブジェクトに格納されます。
読み込んだイメージオブジェクトより、BufferedImage#getRGB(int,int)を使って、色を取得します。
引数には、色を取得したい画像の位置(座標)を指定します。
その後、Colorクラスを使って、Color#getRed()のようにRGB値、アルファ値を取得します。