Android के ग्राफिक्स में PorterDuff.Mode का क्या अर्थ है। यह क्या करता है?


142

मैं जानना चाहता हूं कि Android ग्राफिक्स में PorterDuff.Mode का क्या मतलब है।

मुझे पता है कि यह एक स्थानांतरण मोड है

मुझे यह भी पता है, कि इसमें DST_IN, Multiply आदि जैसे गुण हैं।


मेरी हाल की खोज से। यदि आपके पास ओवरलैपिंग छवियां हैं और उनमें से एक के रंग फिल्टर को बदलने की कोशिश करते हैं, तो यह दूसरी छवि की पुष्टि करता है जो इसे ओवरलैप कर रहा है!
जोनाथन

जवाबों:


321

यहां Google इंजीनियर द्वारा चित्र के साथ एक उत्कृष्ट लेख दिया गया है:

http://ssp.impulsetrain.com/porterduff.html

पोर्टरडफ को छवियों के संयोजन के एक तरीके के रूप में वर्णित किया जाता है जैसे कि वे "कार्डबोर्ड के अनियमित आकार के टुकड़े" थे, जो एक दूसरे पर ओवरले हुए थे, साथ ही ओवरलैपिंग भागों को मिश्रित करने की योजना भी थी।

छवियों की रचना करने का डिफ़ॉल्ट एंड्रॉइड तरीका PorterDuff.Mode.SRC_OVER है , जो लक्ष्य छवि पर स्रोत छवि / रंग को चित्रित करने के लिए समान है । दूसरे शब्दों में, यह वही करता है जो आप गंतव्य छवि (कैनवास) के शीर्ष पर स्रोत छवि (जिस पर आप आकर्षित कर रहे हैं) को खींचते हैं और गंतव्य छवि के माध्यम से स्रोत छवि के अल्फा द्वारा परिभाषित डिग्री को दिखाते हैं।

लेख से पोर्टरडफ इन्फोग्राफिक

आप उस बीजगणित को समझने के लिए नीचे दी गई कुंजी का उपयोग कर सकते हैं जो एंड्रॉइड डॉक्स अन्य मोड्स का वर्णन करने के लिए उपयोग करता है ( समान शर्तों के साथ फुलर डिसिएररेशन के लिए लेख देखें )।

  • सा स्रोत अल्फा
  • एस सी स्रोत रंग
  • दा गंतव्य अल्फा
  • डीसी गंतव्य रंग

जहाँ अल्फा एक मान है [0..1], और रंग प्रति चैनल एक बार प्रतिस्थापित किया जाता है (इसलिए लाल, हरे और नीले रंग के लिए एक बार सूत्र का उपयोग करें)

परिणामी मूल्य वर्ग ब्रेसिज़ में एक जोड़ी के रूप में निर्दिष्ट हैं।

[<alpha-value>,<color-value>]

क्रमशः परिणामी अल्फा चैनल और प्रत्येक रंग चैनल उत्पन्न करने के लिए कहां alpha-valueऔर color-valueसूत्र हैं।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.