0

画像ピッカーから UIImage を取得し、UIImageView に入れています。通常の画像では問題なく動作しますが、iPhone のカメラで撮影した画像では、90 度回転して表示されることがあります。

後でこれらの画像の 1 つにアクセスすると (既にディスクに保存されています)、上記のエラーに気付きました。

何か案は?写真の撮影中にカメラの位置に関する余分なexifメタデータを保存するiPhoneと関係があると思いますが、写真の1つはポートレートモードで撮影され、どういうわけかランドスケープに回転しました。

4

2 に答える 2

3

私が使用した解決策は、imageOrientationプロパティの指示に従って画像を回転および反転することです。このトリックを実行するコードがいくつかあります: UIImage fix

UIImageViewは自動的に回転&反転するので、そのまま画面に表示するだけなら問題ありません。

于 2009-04-19T18:17:01.803 に答える
0

電話が回転メタデータを画像とともに保存して、表示のために回転する必要があることを示すのは正しいことです。これは EXIF タグである可能性があります。それは完全に異なるものである可能性があります.Appleがあなたに言うのはUIImageの形です.

UIImage は多くの点で、CGImage の単純なラッパーです。CGImage 画像は、この場合、生の画像データのみを知っている/気にする「ダム」オブジェクトです。回転情報ほど高レベルなものではありません。UIImage は、これを回転やその他の情報と一緒に 1 つの便利なクラスにまとめます。利点の 1 つは、UIImage が正しい回転で自分自身を描画する方法を自動的に認識することです。

したがって、ゴールデンは基本的に、ほとんどのアプリで CGImage とのやり取りを避けることです。UIImage は、必要なほとんどすべてを実行し、高レベルの回転情報なども処理する必要があります。そうしないと、ほとんどの画像は正しく描画されますが、一部が回転するという奇妙な状況に陥ります。

于 2009-04-19T23:14:57.953 に答える