का उपयोग कर सभी काले पिक्सल पारदर्शी बनाएं I विशेष रूप से CIImage फ़िल्टर का उपयोग करके रंग मुखौटा के समान कुछ प्राप्त करने का प्रयास कर रहा हूं।सीआईएममेज
असल में, मैं सभी काले पिक्सेल पारदर्शी बनाने के लिए देख रहा हूं। मुझे कोई फर्क नहीं पड़ता कि सभी गैर-काले पिक्सेल का अंत क्या होता है, जब तक उनके पास अधिकतम अल्फा होता है।
कोड मैं प्राप्त करने के लिए इस विचार करेंगे में कोर ग्राफिक्स से परिचित हूँ की तरह:
// Convert black sections to transparent using a color mask
const CGFloat maskingColors[6] = { 0, 0, 0, 0, 0, 0 };
CGImageRef result = CGImageCreateWithMaskingColors(image, maskingColors);
मैं इसे मुख्य छवि में एक शॉट एक रंग मैट्रिक्स फिल्टर का उपयोग कर दिया है, लेकिन यह सिर्फ nil
को result
सेट चूंकि CIVector मान 1.0f
से अधिक हैं।
// Create color matrix filter
CIFilter *matrix = [CIFilter filterWithName:@"CIColorMatrix"];
// Set filter properties
[matrix setValue:image forKey:kCIInputImageKey];
[matrix setValue:[CIVector vectorWithX:1.0f Y:0.0f Z:0.0f W:0.0f] forKey:@"inputRVector"];
[matrix setValue:[CIVector vectorWithX:0.0f Y:1.0f Z:0.0f W:0.0f] forKey:@"inputGVector"];
[matrix setValue:[CIVector vectorWithX:0.0f Y:0.0f Z:1.0f W:0.0f] forKey:@"inputBVector"];
[matrix setValue:[CIVector vectorWithX:255.0f Y:255.0f Z:255.0f W:0.0f] forKey:@"inputAVector"];
// Get the mapped image
CIImage *result = [matrix valueForKey:kCIOutputImageKey];
नोट: के लिए क्या इसके लायक है, यह एक OSX एप्लिकेशन है।
आप इसे एक की जरूरत है सरल समाधान या सबसे तेज़? मुझे एक बार ऐसी समस्या का सामना करना पड़ा है और मैं आपको फास्ट इमेज रीड्रा के लिए ओपनजीएल का उपयोग करने की सलाह देता हूं क्योंकि आप ऊपर पारदर्शी पिक्सल नहीं खींच सकते हैं। – Mehdzor
अभी के लिए सरल समाधान, लेकिन यदि आपके पास ओपनजीएल पर संकेत हैं जो भी अच्छा होगा। आदर्श रूप में हमें इस प्रश्न के दायरे के लिए सीआईएममेज के भीतर सब कुछ रखना चाहिए (दूसरों की भी मदद करने के लिए)। –
क्या आपने 'CIFILTER' 'CIMaskToAlpha' या' CIColorMap' 'पर एक नज़र डाली? –