2

注: EXIF データを変更するつもりはありません。

EXIF データに基づいて画像の向きを変更しようとしています。Orientation の値が 3、6 、または 8の場合は、それに応じて回転させます。

私が今抱えている問題はrotate()、ドキュメントが言うように、フォーマットのない画像が戻ってくることです。

im.format ⇒ 文字列 or None

ソース ファイルのファイル形式。ライブラリ自体によって (ファクトリ関数を介して、または既存のイメージに対してメソッドを実行することによって) 作成されたイメージの場合、この属性は None に設定されます。

したがって、返されたクラスのメンバーではないため、_getexif()によって返された画像を呼び出すことはできません。回転が正しいことをプログラムrotate()で確認するにはどうすればよいですか?

編集:'exif'画像の dict にキーがあることに気付きました.infoが、それはバイト文字列なので、どうすればよいかわかりません。

4

1 に答える 1

0

90 度 (時計回りと反時計回り) の回転では、幅と高さの値が入れ替わっていることを確認できます。明らかに、これは正方形の画像には役に立ちません (写真にはありそうにありません)。

180 度回転の場合、幅と高さが変更されていないことを確認します。さらに、いくつかの上部の行と下部の行を測定できます。たとえば、グレースケールに変換して暗さを数えます (または色のままにして青さを数えます)。多少のバリエーションを考慮して、暗い面が反対側になるようにします。左右の列を測定することもできます。同様に、これは 90 度の回転にも適用できます。

于 2014-05-11T21:19:28.180 に答える