2013-04-12 5 views
5

このコードを使用してBufferedImageをグレースケールに変換しました。私は通常、ピクセル値をBufferedImage.getRGB(i,j)で取得し、R、G、Bの各値をgorにします。しかし、グレースケール画像のピクセル値はどのようにして取得できますか?BufferedImage - グレースケールカラーモデルのピクセル値を取得する

編集:申し訳ありませんが、変換を忘れてしまいました。

static BufferedImage toGray(BufferedImage origPic) { 
    BufferedImage pic = new BufferedImage(origPic.getWidth(), origPic.getHeight(), BufferedImage.TYPE_BYTE_GRAY); 
    Graphics g = pic.getGraphics(); 
    g.drawImage(origPic, 0, 0, null); 
    g.dispose(); 
    return pic; 
} 
+0

変換に使用したコードを投稿できますか? –

+0

"このコードを使用してください。コードはどこですか? –

答えて

16

あなたがそのような(赤、緑、青、グレー)の値を取得できるように、RGBの画像がある場合:

BufferedImage img;//////read the image 
int rgb = img.getRGB(x, y); 
int r = (rgb >> 16) & 0xFF; 
int g = (rgb >> 8) & 0xFF; 
int b = (rgb & 0xFF); 

を灰色が(R、G、Bの平均であります)、このような:

int gray = (r + g + b)/3; 

ができますが、画像(8ビット)をグレーにRGBの画像(24ビット)を変換する場合:

int gray= img.getRGB(x, y)& 0xFF;/////////will be the gray value 
+0

ピクセルのアルファ値を取得する方法を知っています。 –

+0

@SriHarshaChilakapatiアルファは(rgb >> 24)&0xFF – Kajzer

+0

アルファ:(rgb >> 24)と0xFF –

関連する問題