मैं एंड्रॉइड ColorFilters
के साथ किसी समस्या को हल करने का प्रयास कर रहा हूं। दस्तावेज़ीकरण बहुत खराब है, इसलिए मुख्य विधि विभिन्न रूपों का प्रयास कर रही है।एंड्रॉइड कलरफिल्टर - पोर्टर-डफ मोड
समस्या:
एक बिटमैप है। कुछ पिक्सल में अल्फा = 255 है, अन्य में अल्फा = 0 है। मैं एक विशिष्ट रंग के साथ एक सर्कल आकर्षित करने की कोशिश कर रहा हूँ। मैं अल्फा चैनल बिटमैप में अपरिवर्तित चाहता हूं, लेकिन ड्राइंग करते समय मैं बिटमैप-अल्फा में एक रंग गुणा करना चाहता हूं।
तो, एक सर्कल ड्राइंग करते समय मैं पिक्सेल को अल्फा = 0 के साथ पेंट करना चाहता हूं, लेकिन अल्फा = 255 के साथ पिक्सल को रंग में पेंट किया जाना चाहिए जो मैं चाहता हूं। अल्फा चैनल नहीं बदला जाना चाहिए।
मैं पोर्टर-डफ कलरफिल्टर (एंड्रॉइड एसडीके में पोर्टरडफ कॉलरफिल्टर क्लास) का उपयोग करने की कोशिश कर रहा हूं।
भी कई मोड और यहाँ आधिकारिक साइट पर कोई-समझा जा सकता वर्णन देखते हैं: http://developer.android.com/reference/android/graphics/PorterDuff.Mode.html
मुझे लगता है मैं DST_ATOP
या SRC_ATOP
का उपयोग करना चाहिए, लेकिन जैसा कि मैंने वर्णित वे काम नहीं करते।
इसके अलावा, पोर्टर-डफ रंगफिल्टर के निर्माता में srcColor
एक अजीब पैरामीटर है।
मुझे समझ में नहीं आता कि "सा" और "एससी" का अर्थ सूत्रों में क्या है [Da, Sc * Da + (1 - Sa) * Dc]
। यह रंग से हो सकता है जो रंगफिल्टर कन्स्ट्रक्टर में पारित किया गया था और यह "paint.setcolor" द्वारा रंग सेट भी हो सकता है।
कोई जानता है, यह कैसे काम करता है?
आप इन मोडों का अर्थ देखने के लिए पोर्टर डफ को Google पर जा सकते हैं। – Renard
यह महान दस्तावेज़ छवियों के साथ पोर्टरडफ मोड्स को बताता है: http://ssp.impulsetrain.com/porterduff.html बस जागरूक रहें कि यह एंड्रॉइड की तरह "src_" नहीं जोड़ता है: इसलिए "IN" = "SRC_IN" –