5

カスタムクロッパーで画像をトリミングしようとしています。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. これを解決するには?

前もって感謝します。

4

1 に答える 1

4

これは、iPhoneカメラがホームボタンと比較して画像を回転させることです。画像のメタデータであるEXIFを使用しています。このスレッドを参照してください:

iPhone画像の回転

于 2012-05-25T06:07:41.013 に答える