1

画像からexifデータを取得しようとしています。入れてみました

1.
puts img.orientation
#TopLeftOrientation

2.
puts img.orientation
#UndefinedOrientation

実際に値を比較する方法。

img.orientation.inspect を入力すると、いくつかの値が得られます

TopLeftOrientation=1
UndefinedOrientation=0

ロジックを実行するために 1 から 0 の値を取得したいのですが、方法はありますか?

その上、私はいくつかのリソース http://blog.choonkeat.com/weblog/2007/10/lesson-1-after-.htmlを見つけまし た:

img["EXIF:Orientation"] == "6"

回転します!(90)

しかし、私の場合、「6」の画像が得られましたが、回転する必要はありません。何か案は?

4

1 に答える 1

2

表示されている数値は、EXIF 方向仕様に関連しています: http://sylvana.net/jpegcrop/exif_orientation.html

これらはこれらに直接マップされます: http://www.imagemagick.org/RMagick/doc/constants.html#OrientationType

単純に img.orientation.to_i を使用して整数値を取得するか、case ステートメントを使用して上記のリンクの定数に基づいて導出することができます。

EXIF データが単純に間違っている場合があります。したがって、一部の画像の EXIF データに欠陥がある可能性があることも考慮してください。

最後に、役に立つかどうかわかりませんが、img.auto_orient! があります。これにより、EXIF データに基づいて自動的に画像が適切な向きに設定されます。

于 2013-07-10T00:20:53.250 に答える