我将使用BufferedImage的getRGB方法。我想检查图像的像素,看看哪些像素具有透明度(一般来说,我将拥有的透明像素将完全透明)。如何从getRGB返回的int中获取它?
答案 0 :(得分:18)
BufferedImage img = ....
public boolean isTransparent( int x, int y ) {
int pixel = img.getRGB(x,y);
if( (pixel>>24) == 0x00 ) {
return true;
}
}
当然img必须采用正确的格式TYPE_4BYTE_ABGR或某种支持alpha通道的格式,否则总是不透明(即0xff)。
答案 1 :(得分:0)
在int中获取alpha值的正确移位是>>>由于符号位。
例如: int alpha1 =(pixel1& 0xff000000)>>> 24;