5

画像ファイルを取得してラスターに変換し、そのデータ (RBG 値) にピクセル単位でアクセスするにはどうすればよいですか?

4

5 に答える 5

2
BufferedImage img = ImageIO.read(new File("lol"));
int rgb = img.getRGB(x, y);

Color c = new Color(rgb);

Color.getRed()、getGreen()、getBlue()、および getAlpha() を使用して、さまざまな値を取得できるようになりました。

于 2011-10-24T19:07:17.183 に答える
2
BufferedImage image = ImageIO.read(new File(myFilename));
int pixel = image.getRGB(0, 0); // Top left pixel.
// Access the color components, valued 0-255.
int alpha = (pixel >>> 24) & 0xff; // If applicable to image format.
int r = (pixel >>> 16) & 0xff;
int g = (pixel >>> 8) & 0xff;
int b = pixel & 0xff;

[編集] @Sibboの答えは正しく、Colorクラスのカラーアクセサメソッドを便利に使用していることに注意してください。ただし、私が示したように、ビット操作を介して色を直接抽出すると、コンストラクター呼び出しの繰り返しによるオーバーヘッドが回避されるため、かなり高速になる可能性があります。

于 2011-10-24T19:13:46.563 に答える
1

を使用ImageIO.readしてイメージ ファイルを として読み込み、BufferedImageいずれかのgetData方法を使用してイメージの を取得しますRaster。その中には、ピクセル データを取得するためのメソッドがあります。

于 2011-10-24T19:08:37.800 に答える
1

画像をラスターに変換した後は、rgb 値を使用しないでください。rasters.getDataメソッドを使用します。

于 2011-11-11T18:09:30.067 に答える
1

これを使って:

Image img.getRGB(x, y);

Color c = new Color(rgb);
于 2011-12-12T20:06:42.793 に答える