2013-04-12 170 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; 

,但如果轉換RGB圖像(24位),以灰度圖像(8位):

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

有興趣知道如何獲得像素的alpha值 –

+0

@SriHarshaChilakapati alpha是(rgb >> 24)&0xFF – Kajzer

+0

alpha:(rgb >> 24)&0xFF –

相關問題