2011-05-14 7 views
14

क्या कोई मुझे बता सकता है कि जावा TYPE_INT_RGB और TYPE_INT_ARGB में रंग कैसे संग्रहीत करता है?
लाल, हरे और नीले रंग की गणना के लिए कोड की ये पंक्तियां ठीक से काम करती हैं?TYPE_INT_RGB का प्रारूप और TYPE_INT_ARGB

int red= (RGB>>16)&255; 
int green= (RGB>>8)&255; 
int blue= (RGB)&255; 

और TYPE_INT_ARGB के बारे में क्या? मैं TYPE_INT_ARGB से लाल, हरा और नीला कैसे प्राप्त कर सकता हूं?

+0

निकर कोड के लिए, 255 '0xff' या' 0b1111_1111' – Thumbz

उत्तर

22

TYPE_INT_ARGB रंग को int (4 बाइट्स) के रूप में 24-31 बिट्स में अल्फा चैनल के साथ, 16-23 में लाल चैनल, 8-15 में हरा और 0-7 में नीला रंग का प्रतिनिधित्व करता है।

TYPE_INT_RGB एक int (4 बाइट्स) के रूप में रंग का प्रतिनिधित्व करता है TYPE_INT_ARGB की उसी तरह int, लेकिन अल्फ़ा चैनल नजरअंदाज कर दिया है (या बिट्स 24-31 0 कर रहे हैं)।

java.awt.Color और java.awt.image.BufferedImage के जावाडोक को देखें।

+1

हो सकता था मुझे पहले इन चीज़ों के बारे में पता नहीं था :-) किसी और को जानकर खुशी हुई है कि यह आपके लिए खोजा गया है :-) –

0

ये निरंतर मान हैं जो BufferedImage के उदाहरण के रंग मॉडल को इंगित करते हैं। ये मान स्वयं रंग को संग्रहित नहीं करते हैं।

7

आप TYPE_INT_RGB के लिए सही हैं। बराबर TYPE_INT_ARGB कोड होगा: कम से कम महत्वपूर्ण करने के लिए सबसे महत्वपूर्ण से बाहर बाइट्स के लिए रंग तत्वों

int rgb = rgbColor.getRGB(); //always returns TYPE_INT_ARGB 
int alpha = (rgb >> 24) & 0xFF; 
int red = (rgb >> 16) & 0xFF; 
int green = (rgb >> 8) & 0xFF; 
int blue = (rgb  ) & 0xFF; 

वर्तनी, आप ARGB, इसलिए नाम मिलता है।

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