2009-10-26 15 views
7

के चयनित क्षेत्रों को ड्रा करें मेरे पास एक यूआईएममेज है जिसमें छवि पर छोटी तस्वीरों के एक समूह के साथ एक छवि है (अनिवार्य रूप से एक छवि स्ट्रिप युक्त स्प्राइट्स)। मैं अपने UIView के एक क्षेत्र पर एक स्प्राइट आकर्षित करना चाहता हूं।UIImage

मुझे लगता है कि दृश्य पर UIImage का केवल एक हिस्सा नहीं है। क्या कोई तरीका है जो यह करता है?

उत्तर

8

मुझे लगता है कि आप CGImageCreateWithImageInRect() द्वारा खोजे जा रहे उस पृष्ठ से कोड है। property of the same name के साथ आप UIImage से CGImage प्राप्त कर सकते हैं।

संपादित करें: 2014 में मौजूद एक और विकल्प, जो 200 9 में नहीं था, SpriteKit है। आप जो कर रहे हैं उसके आधार पर स्प्राइट शीट की आवश्यकता होती है, जो उपयोगी हो सकती है।

+0

धन्यवाद, अब यह कोशिश कर रहा है। – rein

+0

अच्छा एक @ सिक्सटन, मुझे लगता है कि यह वही लगता है जो वह चाहता था +1 –

+0

पूरी तरह से काम करता है (ड्राइंग के दौरान CGImages फ़्लिप किए जाने के साथ कुछ सिरदर्द कम करें)। धन्यवाद। – rein

2

हाँ, आप निश्चित रूप से क्वार्ट्ज के साथ कर सकते हैं।

यहां एक ट्यूटोरियल है जो आपको दिखाता है कि यूआईएममेज कैसे लें और इसका एक हिस्सा कैसे मुखौटा करें।

http://iosdevelopertips.com/cocoa/how-to-mask-an-image.html

यहाँ (बैठाना यह किसी कारण से नीचे चला जाता है)

- (UIImage*) maskImage:(UIImage *)image withMask:(UIImage *)maskImage { 

    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); 
    return [UIImage imageWithCGImage:masked]; 

} 
+0

यह बहुत अच्छी चीजें है और मैं निश्चित रूप से इसे बुकमार्क कर दूंगा लेकिन मैं इसके लिए एक मुखौटा बनाना नहीं चाहता हूं। मैं बस कुछ ऐसा करना चाहता हूं: [[UIImage imageNamed: @ "myimage"] drawInRect: CGMakeRect (10,10,50,50) सेक्ट: CGMakeRect (60,60,50,50)]; – rein

3

मैंने स्प्राइट शीट को संभालने के लिए UIImage श्रेणी लिखा था। CGImageCreateWithImageInRect() पर देखें, जैसा कि पहले उल्लेख यह उपयोगी http://reecon.wordpress.com/2011/11/19/uiimage-sprite-additions-objective-c/

हो सकता है, इस श्रेणी ठिकानों लेकिन एक भी स्प्राइट शीट दूर अधिक सुविधाजनक और तेजी से स्प्राइट को निकालने की प्रक्रिया बनाता है।

Git हब पृष्ठ के लिए लिंक: https://github.com/r3econ/UIImage-Sprite-Additions

तुम भी कोको फली का उपयोग कर स्थापित कर सकते हैं।