0

UIImagePickerControllerユーザーのフォトライブラリから画像を取得したり、カメラで撮影したりするために使用しています。よく働く。

imageOrientationフェッチされた画像は、(常に?)に設定された状態で戻ってくることがよくありますUIImageOrientationRight。ただし、画像はデバイスを縦向きに使用してキャプチャされました。 どうしてこれなの? これは、リアカメラを使用したiPhone4S、iOS6であるため、解像度は8MPです。

シミュレータでは、フォトライブラリから写真を取得すると、画像が返されUIImageOrientationUpます。

画像をUIImageView向きで表示すると、正しい向き(縦/上)に見えます。しかし、画像を切り抜くとき、座標系は私が期待するものではありません。0,0は画像の右上にあります。これは、レポートするときに意味があると思いますUIImageOrientationRight

何が起こっているのか、そして奇数の座標系に対処するための正しいアプローチの説明を探しています。

編集:少なくともiPhone4Sでは、カメラは常にUIImageOrientationRight / "landscape"画像を取得し、UIImageViewは表示されているimageOrientationを尊重しているように見えます。ただし、UIImagePNGRepresentationを使用して画像を保存すると、向きが保持されません(これについてはどこかで読んだと思います)。

4

1 に答える 1

0

これは、画像が撮影されたときの電話の向きに関係しています。電話は、カメラセンサーからの画像データを回転させて画像をアップにするのではなく、代わりに imageOrientation を設定し、UIImage が物事を正しい方法でレンダリングします。

トリミングしようとすると、通常、画像を CGImage に変更すると、方向情報が失われるため、突然、奇妙な方向の画像が得られます。

imageOrientation を考慮しながら画像のトリミングを実行する UIImage には、いくつかのカテゴリがあります。

リンクまたはリンクをご覧ください

于 2012-10-25T17:53:19.110 に答える