2012-01-23 9 views
6

BufferedImageのgetRGBメソッドを使用します。私は画像のピクセルをチェックし、それらのどれが透明であるかを見たいと思います(一般に透明であるピクセルは透明になります)。 getRGBが返すintからどのように取得できますか?もちろん、IMGのJava BufferedImageピクセルが透明かどうかを知る方法

+2

'int transparency =((img.getRGB(x、y)&0xff000000)>> 24);最初のバイトはアルファ値です。 – Chad

答えて

17
BufferedImage img = .... 

public boolean isTransparent(int x, int y) { 
    int pixel = img.getRGB(x,y); 
    if((pixel>>24) == 0x00) { 
     return true; 
    } 
} 

正しいフォーマットTYPE_4BYTE_ABGRか、常に(つまり0xffの)不透明になる場合、他のアルファチャンネルをサポートし、いくつかの形式にする必要があります。

0

intのアルファ値を得る正しいシフトは、符号ビットのために>>>です。

例: int alpha1 =(ピクセル1 & 0xff000000)>>> 24;