Java BufferedImage如何知道像素是否透明

时间:2012-01-23 20:39:59

标签: java transparency bufferedimage

我将使用BufferedImage的getRGB方法。我想检查图像的像素,看看哪些像素具有透明度(一般来说,我将拥有的透明像素将完全透明)。如何从getRGB返回的int中获取它?

2 个答案:

答案 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;