2009-12-28 14 views
5

मुझे अपनी छवियों को फसल करने के लिए पुनः आकार देने योग्य आयत बनाने में परेशानी हो रही है। मैं इस तस्वीर की तरह कुछ प्राप्त करने के लिए कोशिश कर रहा हूँ:आईफोन - आप छवियों को फसल करने के लिए एक आकार बदलने योग्य आयत कैसे बनाते हैं?

http://img192.imageshack.us/img192/8930/customcropbox.jpg

ठीक है, समस्या सिर्फ मैं कोई सुराग नहीं है, जहां वास्तव में शुरू करने के लिए है। मुझे कुछ सलाह चाहिए कि मैं फसल के इस प्रभाव को कैसे प्राप्त कर सकता हूं। मुझे किस दस्तावेज को पढ़ना चाहिए? कोर ग्राफिक्स या क्वार्ट्ज 2 डी? दोनों? मैं रिलीज की तारीख के बाद से आईफोन के लिए कोडिंग कर रहा हूं लेकिन मैंने कभी भी मूल ग्राफिक्स और आदि का उपयोग नहीं किया है। किसी भी मदद या सलाह की सराहना की जाएगी। मैं अपना कोड यहां फेंक दूंगा क्योंकि मैं यह दिखाने के लिए प्रगति करता हूं कि जब मैं इसे प्राप्त करता हूं तो यह कैसे किया जाता है। :-) इसके अलावा, यह आयताकार बॉक्स UIImageView में स्क्रीन पर चलने योग्य है जो इसे और अधिक रोचक बनाता है। मदद के लिए धन्यवाद और मैं इस लक्ष्य को प्राप्त करने के लिए तत्पर हूं।

+0

के साथ एक ही रूप में हर बार संभव हो जाना चाहिए फसली क्षेत्र के साथ एक नया UIImage पैदा समय बर्बाद करने के लिए आवश्यक है नमस्ते यह सुनिश्चित करने के लिए आप मदद कर सकते हैं बस लेने नहीं लगता कि एक बार एक बार देखें: https://github.com/barrettj/BJImageCropper/network/members – RayofHope

+0

हाय, क्या आपको इसके लिए समाधान मिला? मुझे एक ही मुद्दे का सामना करना पड़ रहा है। – ScarletWitch

+1

यदि आप नीचे छवि की तरह फसल करना चाहते हैं https://raw.github.com/yuyak/YKImageCropper/master/Example/screenshot.png फिर इसका उपयोग करें: https://github.com/yuyak/YKImageCropper – RayofHope

उत्तर

1

बुकमार्क मेरे question जो बिल्कुल वही है।

मुझे अपने क्रॉपिंग व्यू के चारों ओर घूमते हुए और छवि के हिस्से को सही तरीके से दिखाया गया है, लेकिन स्क्रॉलव्यू ज़ूमिंग से निपटने का काम प्रगति पर है। वर्तमान में मेरे पास UIScrollview में स्तरित एक छविदृश्य और सादा UIView है, फिर स्क्रॉलव्यू के बाहर और उच्च स्तर पर मेरा कस्टम क्रॉपिंग UIView है। मैं छूता तरीकों इसके चारों ओर खींच, और भी drawRect से निपटने के लिए लागू:

- (void)drawRect:(CGRect)rect { 
    // Drawing code 
    if(self.image == nil) 
     return; 

    CGPoint offset = scrollView.contentOffset; 
    clipRect = CGRectOffset(self.frame, offset.x, offset.y); 

    UIImage *croppedImage = [image croppedImage:clipRect]; 
    CGContextRef ctx = UIGraphicsGetCurrentContext(); 
    [croppedImage drawAtPoint:CGPointMake(0, 0)]; 
} 

नोट: मेरी फसल दृश्य UIImageView का वंशज नहीं है, यह अन्य दृश्य से अंतर्निहित छवि के लिए एक संदर्भ के साथ सिर्फ UIView है।

@implementation UIImage (Resize) 
- (UIImage *)croppedImage:(CGRect)bounds { 
    CGImageRef imageRef = CGImageCreateWithImageInRect([self CGImage], bounds); 
    UIImage *croppedImage = [UIImage imageWithCGImage:imageRef]; 
    CGImageRelease(imageRef); 
    return croppedImage; 
} 
... 
@end 

मैं UIScrollViewDelegate तरीकों में से कुछ को लागू किया और स्क्रॉल गतिविधि के माध्यम से पारित कर दिया है तो मैं सिंक में मेरी फसल दृश्य रख सकते हैं:

"croppedImage" UIImage पर एक वर्ग और बहुत सरल है। ज़ूमिंग भी पास हो जाती है, लेकिन जैसा कि बताया गया है, वांछित के रूप में काम नहीं कर रहा है।

एक और नोट: मैं इसे

CGImageRef imageRef = CGImageCreateWithImageInRect([yourImage CGImage], bounds); 
and 
CGContextDrawImage(ctx, clipRect, imageRef); 
1

क्वार्ट्ज कोर ग्राफिक्स के लिए 'मार्केटिंग टर्म' है, और यही वह जगह है जहां आपको शुरू करना चाहिए। आप एक UIView (पूर्ण कस्टम ड्राइंग में-ड्राउरक्ट :), जाल और अपने स्पर्शों को ट्रैक करना चाहते हैं, और उसके बाद परिणाम खींचना चाहते हैं। आप UIGraphicsGetCurrentContext() का उपयोग कर वर्तमान ग्राफिक्स संदर्भ प्राप्त कर सकते हैं। यह शुरू करने के लिए पर्याप्त होना चाहिए!

+0

अच्छा लगता है, प्रारंभिक धक्का के लिए धन्यवाद। – 0SX

+0

वास्तव में अच्छा लगता है आप इसे करने के लिए नमूना कोड के साथ मदद कर सकते हैं – Marios

संबंधित मुद्दे