2012-05-25 9 views
5

मैं चित्र काटने के लिए कोशिश कर रहा हूँ की CGImage कारण रोटेशन के लिए UIImage परिवर्तित। UIImagePickerController से नहीं। अब मैं छवि UIImagePicker के प्रतिनिधि से निपटने के द्वारा एक UIImgeView में छवि पिकर से कब्जा कर लिया दिखा रहा हूँ कि के लिए:अपने कस्टम काटने वाला द्वारा छवि

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo { 
    imvOriginalImage.image = image; 
} 

फसल के लिए मैं CGImageRef को यह छवि परिवर्तित करने के लिए की है। छवि पोर्ट्रेट मोड में कब्जा कर लिया गया है। अब जब मैं इस छवि को CGImageRef छवि अभिविन्यास में परिवर्तित करता हूं तो बदल जाता है। यहां तक ​​कि अगर मैं निम्नलिखित का उपयोग करें:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo { 
    //imvOriginalImage.image = image; 
    CGImageRef imgRef = [image CGImage]; 
    UIImage *img = [UIImage imageWithCGImage:imgRef]; 
    [imvOriginalImage setImage:img]; 

}

छवि अभिविन्यास बदल जाओ। यह केवल उन छवियों के लिए होता है जो पोर्ट्रेट मोड में कैप्चर किए जाते हैं। लैंडस्केप छवियों में यह समस्या नहीं है।

  1. ऐसा क्यों हो रहा है?
  2. यह कैसे हल करने के लिए?

अग्रिम में धन्यवाद।

+1

इसका कारण यह है '' UIImage' एक 'imageOrientation' संपत्ति है, जो छवियों घूर्णन के बारे में जानता है, लेकिन CGImageRef' इस बारे में पता नहीं है। –

उत्तर

4

यह है कि आईफोन कैमरा होम बटन की तुलना में छवि को घुमाता है। यह EXIF का उपयोग करता है जो छवि के मेटा डेटा है। इस सूत्र देखें:

iPhone image rotation

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