2012-10-07 4 views
5

का उपयोग कर छवि क्रॉपिंग छवि मैं आईओएस कैमरा दृश्य को कार्यान्वित करने का प्रयास कर रहा हूं जो आकार में वर्ग (Instagram के समान) लेता है। मेरा कोड नीचे दिखाई देता है। पहला भाग, जहां फ्रेम ऊंचाई फ्रेम चौड़ाई के बराबर सेट की जाती है, उम्मीद के अनुसार काम कर रही है और उपयोगकर्ता को एक दृश्य दिया गया है जो वर्ग है। समस्या तब होती है जब मैं CGImageCreateWithImageInRect का उपयोग कर छवि डेटा पर फ्रेम (जो एक सीजीआरईटी संपत्ति है) लागू करने का प्रयास करता हूं। मैं छवि के साथ इस विधि में फ्रेम रेक्ट पास करता हूं। लेकिन परिणाम वर्ग के रूप में नहीं फंस गए हैं। इसके बजाय छवि आईओएस कैमरा से मूल डिफ़ॉल्ट आयामों को बरकरार रखती है। क्या कोई मुझे बता सकता है कि मैंने क्या गलत किया है? ऐप्पल प्रलेखन से मेरी समझ यह है कि CGImageCreateWithImageInRect को कुछ प्रारंभिक x/y समन्वय से आकार Rect के एक छवि क्षेत्र का चयन करना चाहिए। लेकिन ऐसा प्रतीत नहीं होता है।CGImageCreateWithImageInRect

//Set the frame size to be square shaped 
UIView *view = imagePicker.view; 
     frame = view.frame; 
     frame.size.height = frame.size.width; 
     view.frame = frame; 

//Crop the image to the frame dimensions using CGImageCreateWithImageInRect 
-(void)imagePickerController:(UIImagePickerController *)picker 
didFinishPickingMediaWithInfo:(NSDictionary *)info 
{ 
    [self.popoverController dismissPopoverAnimated:true]; 

NSString *mediaType = [info 
         objectForKey:UIImagePickerControllerMediaType]; 
[self dismissModalViewControllerAnimated:YES]; 
if ([mediaType isEqualToString:(NSString *)kUTTypeImage]) { 
    UIImage *image = [info 
         objectForKey:UIImagePickerControllerOriginalImage]; 

    croppedImage = (__bridge UIImage *)(CGImageCreateWithImageInRect((__bridge CGImageRef)(image), frame)); 

    imageView.image = croppedImage; 

} 
else if ([mediaType isEqualToString:(NSString *)kUTTypeMovie]) 
{ 
    // Code here to support video if enabled 
} 
} 

उत्तर

0

आप सही कर रहे हैं। एकमात्र चीज यह है कि मुझे लगता है कि आप पिकर व्यू के समान फ्रेम प्रॉपर्टी सेट कर रहे हैं, इसलिए अंतिम आकार मूल आकार जैसा ही है।

फ्रेम pickerView.view.frame से कम पर सेट करने की कोशिश करो, नहीं बराबर

इस बाहर की जाँच करें

Cropping an UIImage

+0

मैंने कोशिश की मैं तुम्हें कैसे बनाने के लिए क्या आप के लिए कोशिश कर रहे हैं एप्पल, पर से नमूना कोड पर एक नज़र डालें का सुझाव एक मनमाने ढंग से छोटे सीजीआरईटी पास करना लेकिन आउटपुट में छवि डेटा के 0 बाइट हैं। मैंने सीजीआरईटीटी रेक्ट = सीजीआरईटीएमके (0, 26, 50, 50) का इस्तेमाल किया; साथ ही, मेरा मूल कोड फ्रेम ऊंचाई को चौड़ाई के बराबर सेट करता है, इसलिए यह मूल आकार से छोटा है। आईफोन स्क्रीन के आयामों के आधार पर यह अनिवार्य रूप से एक 320x320 वर्ग है। – hughesdan

+0

शायद यह उत्तर http://stackoverflow.com/a/10185736/1447414 मदद कर सकता है – user1447414

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