Javaで画像の画素操作を思い出す

あぁ、メモ書き再開。
Javaで画像を扱いのはBufferedImageやImageIOやなんかを使うのが普通。
たぶん。久しぶりに思い出して書いてみる。

package parabola;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
public class ReadImageTest {
public static void main(String[] args) throws Exception {
BufferedImage im = ImageIO.read(new File("test.jpg"));
int[] red = new int[256];
int[] green = new int[256];
int[] blue = new int[256];
for (int i = 0; i < im.getWidth(); i++) {
for (int j = 0; j < im.getHeight(); j++) {
int rgb = im.getRGB(i, j);
int r = (rgb >> 16) & 0xFF;
int g = (rgb >> 8) & 0xFF;
int b = (rgb >> 0) & 0xFF;
red[r]++;
green[g]++;
blue[b]++;
}
}
for (int i = 0; i < 255; i++)
System.out.printf("%d %d %d %d\n", i, red[i], green[i], blue[i]);
}
}
Red、Green、Blueの色の強さを取得して、0〜255の個数を足していく。
んでその個数を出力するプログラム。

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です