2012-01-23 2 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;

관련 문제