मैं एक छवि मास्क बनाने की कोशिश कर रहा हूं जो दो मौजूदा छवियों के संयुक्त से है।CGImageMaskCreate के साथ मास्क बनाना सभी ब्लैक (आईफोन)
UIImage * BaseTextureImage = [UIImage imageNamed:@"background.png"];
UIImage * MaskImage = [UIImage imageNamed:@"my_mask.jpg"];
UIImage * ShapesBase = [UIImage imageNamed:@"largerimage.jpg"];
UIImage * MaskImageFull;
CGSize finalSize = CGSizeMake(480.0, 320.0);
UIGraphicsBeginImageContext(finalSize);
[ShapesBase drawInRect:CGRectMake(0, 0, 480, 320)];
[MaskImage drawInRect:CGRectMake(150, 50, 250, 250)];
MaskImageFull = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
मैं यह कर सकते हैं उत्पादन इस UIImage (MaskImageFull:
सबसे पहले मैं समग्र एक छोटे से छवि है कि मास्किंग छवि है के होते हैं जो, और एक बड़ी छवि जो पृष्ठभूमि के रूप में एक ही आकार है बनाने के साथ शुरू) और यह सही दिखता है, यह एक पूर्ण आकार का पृष्ठभूमि आकार है और यह स्क्रीन पर सही जगह पर, मेरे मुखौटा ऑब्जेक्ट के साथ एक सफेद पृष्ठभूमि है।
मैं तो इस के माध्यम से MaskImageFull UIImage पारित:
CGImageRef maskRef = [maskImage CGImage];
CGImageRef mask = CGImageMaskCreate(CGImageGetWidth(maskRef),
CGImageGetHeight(maskRef),
CGImageGetBitsPerComponent(maskRef),
CGImageGetBitsPerPixel(maskRef),
CGImageGetBytesPerRow(maskRef),
CGImageGetDataProvider(maskRef), NULL, false);
CGImageRef masked = CGImageCreateWithMask([image CGImage], mask);
UIImage* retImage= [UIImage imageWithCGImage:masked];
समस्या यह है कि retImage सभी काले है। यदि मैं मुखौटा के रूप में एक पूर्व निर्मित यूआईएममेज भेजता हूं तो यह ठीक काम करता है, यह तब होता है जब मैं इसे कई छवियों से बनाने की कोशिश करता हूं जो टूट जाता है।
मैंने सोचा कि यह एक रंगीन चीज़ थी लेकिन इसे ठीक नहीं कर सका। किसी भी प्रकार की मदद की बेहद सराहना की जाती है!
मुझे बहुत मदद मिली। क्या आप इसे पूरा करने के लिए फ़ंक्शन का हेडर और पाद लेख जोड़ सकते हैं? – Eden
बिल्कुल थंबनेलपॉइंट.एक्स क्या है ?? @catlan –
@ Reza.Ab क्षमा करें मुझे याद नहीं है। स्केल * 9 साल बाद अजीब लग रहा है। मुझे लगता है कि ज्यादातर मामलों में मास्क रेक्ट और छवि रेक्ट एक जैसा होना चाहिए। कृपया इसे आज़माएं और हमें बताएं कि आपको क्या मिल रहा है, – catlan