2012-01-23 16 views
6

Voy a utilizar el método getRGB de BufferedImage. Quiero verificar los píxeles de una imagen y ver cuál de ellos tiene transparencia (en general, los píxeles que tendré transparentes serán totalmente transparentes). ¿Cómo puedo obtenerlo desde el int que getRGB devuelve?Java BufferedImage cómo saber si un píxel es transparente

+2

'int transparency = ((img.getRGB (x, y) & 0xff000000) >> 24);' El primer byte es el valor alfa. – Chad

Respuesta

17
BufferedImage img = .... 

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

De img curso tiene que estar en la TYPE_4BYTE_ABGR formato correcto o algún formato que soporta canales alfa ELSE IF siempre será opaco (es decir, 0xFF).

0

el cambio correcto para obtener el valor alfa en un int es con >>> debido al bit de signo.

ejemplo: int alpha1 = (pixel1 & 0xff000000) >>> 24;

Cuestiones relacionadas