2013-04-12 3 views
5

मेरे पास BufferedImage इस कोड का उपयोग कर ग्रेस्केल में परिवर्तित हो गया है। मुझे आम तौर पर पिक्सेल मान BufferedImage.getRGB(i,j) और आर, जी, और बी के लिए प्रत्येक मान को मिला है, लेकिन मुझे ग्रेस्केल छवि में पिक्सेल का मान कैसे प्राप्त होता है?बुफर्ड इमेज - ग्रेस्केल रंग मॉडल चित्र में एक पिक्सेल का मूल्य प्राप्त करना

संपादित करें: क्षमा करें, रूपांतरण को भूल गए।

static BufferedImage toGray(BufferedImage origPic) { 
    BufferedImage pic = new BufferedImage(origPic.getWidth(), origPic.getHeight(), BufferedImage.TYPE_BYTE_GRAY); 
    Graphics g = pic.getGraphics(); 
    g.drawImage(origPic, 0, 0, null); 
    g.dispose(); 
    return pic; 
} 
+0

क्या आप उस कोड को पोस्ट कर सकते हैं जिसका उपयोग आप इसे परिवर्तित करने के लिए करते थे? –

+0

"इस कोड का उपयोग कर।" कोड कहां है? –

उत्तर

16

आप उस तरह (लाल, हरे, नीले, ग्रे) मान प्राप्त कर सकते आरजीबी छवि है यदि:

BufferedImage img;//////read the image 
int rgb = img.getRGB(x, y); 
int r = (rgb >> 16) & 0xFF; 
int g = (rgb >> 8) & 0xFF; 
int b = (rgb & 0xFF); 

और भूरे रंग के लिए (आर, जी, बी औसत है), इस तरह:

int gray = (r + g + b)/3; 

लेकिन यदि आप आरजीबी छवि (24 बिट) छवि (8 बिट ग्रे) में परिवर्तित:

int gray= img.getRGB(x, y)& 0xFF;/////////will be the gray value 
+0

पिक्सेल –

+0

@ श्रीहार्षा चिलाकापति अल्फा (आरजीबी >> 24) और 0xFF – Kajzer

+0

अल्फा: (आरजीबी >> 24) और 0xFF –

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