6

任意の EXIF 方向データ (8 つの方向の 1 つ) でフラグが付けられた JPG を読み込んでいます。ここから8 つのサンプル画像ファイルをダウンロードしました (このブログ投稿からリンクされています)。

画像 8 は EXIF タグ 8 を表しており、時計回りに 90 度回転しています。これは、この画像を Paintbrush のようなダム ビューアーで見ることで確認できます。

ただし、iOS プロジェクトの UIImage にロードして呼び出す-imageOrientationと、UIImageOrientationLeft. ここのドキュメントによると、

UIImageOrientationLeft

ここに示すように、イメージは反時計回りに90 度回転します。

...これは、下にある画像がどのように見えるかではありません。

EXIF 方向 6 の場合は逆で、左と表示されるはずですが、右と表示されます。

ドキュメントはここで間違っていますか? 明らかな何かが欠けていますか?ありがとう。

4

3 に答える 3

8

私はしばらく同じ問題を抱えていました。UIImageOrientation のドキュメントには、指定された向きを適用すると直立した画像がどうなるかが説明されているようです。たとえば、直立した画像に UIImageOrientationLeft を適用すると、反時計回りに 90° 回転して出力されます。

一方、exif ドキュメントには、直立した画像を生成するための画像データの方向が記載されています。したがって、EXIF コード 8 の場合、画像データを時計回りに 90° 回転させて、画像を縦向きに表示する必要があります。

UIImageOrientationLeft と UIImageOrientationRight だけがこの問題を抱えていることがわかりました。残りの部分はどちらから見ても同じ結果になるからです。

于 2011-08-29T23:03:34.030 に答える
1

問題は原点(回転が適用される場所)にあると思います。UIImage を使用する場合、原点は左上隅にあり、CGImage を使用する場合、原点は左下隅にあります。

于 2011-09-04T06:27:58.687 に答える
0

これに対する興味深い答えを見つけました: http://blog.logichigh.com/2008/06/05/uiimage-fix/

于 2011-09-05T08:23:36.777 に答える