あの画像きれいだなー。とか。
 あの色がほしい~~。とか。
 画像を眺めていると思います。ついでに心も洗われますw
 そんなこんなで、画像から色を取得したい場合、ペイント等で色を抽出することもできますが、せっかくなのでJavaで色を抽出してみたいと思います。
Youtube版はこちらからどうぞ
Youtubeで動画を公開しました。こちらもぜひぜひ。
 こちらでは、もう少し詳しく紹介しています。
画像からピクセルの色を抽出するサンプル
「c:\test\test.jpeg」より、座標(10,20)の色を抽出します。
 また、抽出したRGB値、アルファ値をそれぞれ標準出力します。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | import java.awt.Color; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; public class PixelColorTest {     public static void main(String[] args) {         try {             String filePath = "c:\\test\\test.jpeg";             //画像ファイルを読み込む              BufferedImage img = ImageIO.read(new File(filePath));             //座標(10,20)の色を取得             Color color = new Color(img.getRGB(10, 20));             //取得した色を標準出力             System.out.println("R:" + color.getRed());             System.out.println("G:" + color.getGreen());             System.out.println("B:" + color.getBlue());             System.out.println("A:" + color.getAlpha());         } catch (IOException e) {             e.printStackTrace();         }     } } | 
実行結果
RGB各色と、アルファ値が標準出力されます。
| 1 2 3 4 | R:254 G:198 B:141 A:255 | 
 ちなみに、読み込んだ画像はこちらです。
 赤丸で囲んだあたりのピクセルから色を抽出しました。
 
 標準出力した色をペイントで塗ってみたのがこちらです。似てますね♪(当たり前)
 
サンプルの解説
ImageIO#read(String)により読み込んだ画像は、BufferedImageオブジェクトに格納されます。
 読み込んだイメージオブジェクトより、BufferedImage#getRGB(int,int)を使って、色を取得します。
 引数には、色を取得したい画像の位置(座標)を指定します。
 その後、Colorクラスを使って、Color#getRed()のようにRGB値、アルファ値を取得します。











