2012-01-23 18 views
6

मैं BufferedImage की getRGB विधि का उपयोग करने जा रहा हूं। मैं एक छवि के पिक्सेल को देखना चाहता हूं और देख सकता हूं कि उनमें से किसके पास पारदर्शिता है (सामान्यतः पिक्सेल जो मेरे पास पारदर्शी होंगे, वे पारदर्शी होंगे)। मैं इसे प्राप्त करने वाले int से कैसे प्राप्त कर सकता हूं?जावा BufferedImage कैसे पता चलेगा कि एक पिक्सेल पारदर्शी है

+2

'int पारदर्शिता = ((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; 
    } 
} 
पाठ्यक्रम img का

सही प्रारूप TYPE_4BYTE_ABGR या कुछ प्रारूप (यानी 0xff) है कि और अल्फा चैनलों का समर्थन करता है, तो हमेशा अपारदर्शी हो जाएगा में हो गया है।

0

एक int में अल्फा मान प्राप्त करने के लिए सही बदलाव >>> साइन बिट के कारण है।

उदाहरण: int अल्फा 1 = (पिक्सेल 1 & 0xff000000) >>> 24;

संबंधित मुद्दे