मेरे पास एक सिंगल-चैनल पीएनजी फ़ाइल है जिसे मैं पोर्टर-डफ ड्राइंग ऑपरेशंस के लिए अल्फा मास्क के रूप में उपयोग करना चाहता हूं। यदि मैं इसे बिना किसी विकल्प के लोड करता हूं, परिणामी बिटमैप में एक RGB_565 कॉन्फ़िगरेशन है, यानी ग्रेस्केल के रूप में माना जाता है। अगर मैं पसंदीदा कॉन्फ़िगरेशन को ALPHA_8 पर सेट करता हूं, तो यह इसे एक ग्रेस्केल ARGB_8888 के रूप में लोड करता है।एंड्रॉइड: अल्फा मास्क बिटमैप लोड करना
मैं इस फ़ाइल को ग्रेस्केल छवि के बजाय अल्फा मास्क के रूप में देखने के लिए एंड्रॉइड को कैसे समझा सकता हूं? अब मैं आरजीबी चैनल सभी शून्यों के साथ एक RGBA PNG फ़ाइल में अल्फ़ा चैनल शामिल कर रहा हूँ
: एक समाधान की तुलना में एक वैकल्पिक हल के
mask1 = BitmapFactory.decodeStream(pngStream);
// mask1.getConfig() is now RGB_565
BitmapFactory.Options maskOpts = new BitmapFactory.Options();
maskOpts.inPreferredConfig = Bitmap.Config.ALPHA_8;
mask2 = BitmapFactory.decodeStream(pngStream, null, maskOpts);
// mask2.getConfig() is now ARGB_8888 (the alpha channel is fully opaque)
क्या होता है जब आप पसंदीदा कॉन्फ़िगरेशन ARGB_8888 पर सेट करते हैं? – EboMike
ALPHA_8 के समान परिणाम। मुझे एक अपारदर्शी अल्फा चैनल के साथ एक ARGB_8888 बिटमैप मिलता है। – kvance
आपका पीएनजी किस रंग का प्रकार है? मैं 0 अनुमान लगा रहा हूं, जो ग्रेस्केल है। जहां तक मुझे पता है कि वहां कोई "अल्फा केवल" पीएनजी फ़ाइल नहीं है। फ़ाइल आकार के लिए आप निकटतम सूचकांक के पहचान मानचित्र के साथ 8 बिट पैलेट प्राप्त कर सकते हैं। लेकिन शायद इसके लायक नहीं है। नीचे आपका कामकाज शायद आपको मिलेगा सबसे अच्छा है। लेकिन मुझे वह लड़का होने से नफरत है: एपीआई आपको कुछ बताने की कोशिश कर रहा है! अल्फा और आरजीबी को एक साथ रखें। हमेशा। यह तेजी से और बेहतर समर्थित होने जा रहा है। ALPHA_8 का उपयोग करके आप अच्छा रास्ता छोड़ देते हैं। यदि संभव हो तो अपने डिजाइन को आरजीबीए में बदलने की कोशिश करें। – starmole