Quartz 2D programming guide विभिन्न अल्फा भंडारण मोड की उपलब्धता को परिभाषित करता है?हम किस CGImageAlphaInfo का उपयोग करना चाहिए?</p> <p><img src="https://i.stack.imgur.com/Ap7C9.png" alt="enter image description here"></p> <p>कौन सा जिन्हें हम आरजीबी संदर्भों के लिए उपयोग करना चाहिए, और <strong>क्यों</strong>:
गैर-अपारदर्शी संदर्भों के लिए, kCGImageAlphaPremultipliedFirst
या kCGImageAlphaPremultipliedLast
?
अपारदर्शी संदर्भों के लिए, kCGImageAlphaNoneSkipFirst
या kCGImageAlphaNoneSkipLast
?
क्या मूल्य की पसंद प्रदर्शन को प्रभावित करती है?
आमतौर पर, मैं अपारदर्शी संदर्भों के लिए गैर-अपारदर्शी और kCGImageAlphaNoneSkipFirst
के लिए kCGImageAlphaPremultipliedFirst
देखता हूं। कुछ लोग कहते हैं कि ये बेहतर प्रदर्शन करते हैं लेकिन मैंने इस बारे में कोई कठोर सबूत या दस्तावेज नहीं देखा है।
एक त्वरित GitHub खोज से पता चलता है कि डेवलपर्स kCGImageAlphaPremultipliedFirst
kCGImageAlphaNoneSkipFirst
से अधिक kCGImageAlphaPremultipliedLast
पर और kCGImageAlphaNoneSkipLast
पक्ष में हैं। अफसोस की बात है, यह अजीब सबूत से थोड़ा अधिक है।
मैं अपनी टोपी शर्त लगाता हूं कि जीपीयू हार्डवेयर उपलब्ध होने के आधार पर "सर्वश्रेष्ठ" विकल्प अलग है। चूंकि मेरे पास व्यक्तिगत रूप से पिछले 50 वर्षों में भेजे गए सभी 50 अलग-अलग जीपीयू तक पहुंच नहीं है, इसलिए मैं सबसे अच्छे पर किसी भी डेटा के साथ आपकी सहायता नहीं कर सकता। प्रदर्शन के लिए इसे जांचने के लिए एक ऐप लिखें और प्रत्येक विधि के सटीक रंग आउटपुट को भी प्रोफाइल करें, फिर इसे आपके द्वारा उपलब्ध हार्डवेयर पर चलाएं। –
विभिन्न विकल्प परिभाषित करते हैं कि पिक्सेल डेटा की गणना कैसे की जाती है और आंतरिक रूप से प्रतिनिधित्व किया जाता है ... उदाहरण के लिए कच्चे पिक्सेल डेटा से छवियों का निर्माण करते समय (सी-एरे में भोजन) यदि आप उदाहरण के लिए गलत अल्फा प्रतिनिधित्व चुनते हैं तो यह एक बड़ा अंतर बनाता है। – Volker
@ एबीबीकर्ट यह मेरी आंत महसूस कर रहा है लेकिन मुझे इस पर कुछ पुष्टि या सर्वसम्मति रखना अच्छा लगेगा। मैं शर्त लगाता हूं कि अधिकांश डेवलपर्स सिर्फ 'CGBitmapContextCreate' कोड कॉपी करते हैं, यदि वे सही बिटमैप जानकारी का उपयोग कर रहे हैं तो बहुत अधिक स्पर्श किए बिना। – hpique