コンテキスト
iPhoneの写真両方:縦と横にはImageMagick 7.0.10-62 Q16 x86_64 2021-02-07 + Catalina MacOsを介してEXIFデータにタイムスタンプが割り当てられます。 ImageMagickは次のようにインストールされます。brew install ImageMagick
風景画像は重力マップに従います。
この-gravity
オプションは、画像にコメントを追加するために使用される参照フレームを指定します。注釈付き風景- ようこそ写真はコンベンションに従います。
問題:ポートレート画像のコメントが回転しました
注釈付き肖像画- 方向写真のため参照フレームの回転が発生します。
関連コード:
rm time*.jpeg
tic=$(date)
for img in IMG*jpeg; do convert "$img" -gravity Center -resize 35% -pointsize 65 \
-fill red -annotate +30+30 %[exif:DateTimeOriginal] "time_""$img";
echo "watermarked $img successfully"
done
toc=$(date)
echo $tic
echo $toc
質問
ポートレート画像が検出されたら、テキストを回転させるアルゴリズムを適用できますが、より簡単な方法があるか、上記のコードがある点で間違って参照フレームが+90だけ回転するように見えます。風景写真にはこの問題はありません。
- 人物写真では重力基準系が90度回転するが、風景写真では回転しないのはなぜですか? (機能か欠陥か?)
gravity
一貫した/単一参照フレームを採用する方法は?- 好ましくは、非回転基準フレーム
答え1
ポートレート画像はOrientation
Exifタグで回転します。したがって、画像を回転すると、追加されたタイムスタンプが正確になります。
ポートレート画像(Exifを介して回転):
$ identify -verbose IMG_6361.jpeg | grep Orientation
Orientation: RightTop
exif:Orientation: 6
$ exiftool IMG_6361.jpeg | grep 'Orient\|Width\|Height'
Orientation : Rotate 90 CW
Exif Image Width : 4032
Exif Image Height : 3024
Image Width : 4032
Image Height : 3024
水平画像(回転しない):
$ identify -verbose IMG_1690.jpeg | grep Orientation
Orientation: TopLeft
exif:Orientation: 1
$ exiftool IMG_1690.jpeg | grep 'Orient\|Width\|Height'
Orientation : Horizontal (normal)
Exif Image Width : 4032
Exif Image Height : 3024
Image Width : 4032
Image Height : 3024
方向を「左上」に変更するには、ImageMagickの- 自動方向次のオプション
$ convert -auto-orient IMG_6361.jpeg IMG_6361_auto_orient.jpeg
$ exiftool IMG_6361_auto_orient.jpeg | grep 'Orient\|Width\|Height'
Orientation : Horizontal (normal)
Exif Image Width : 4032
Exif Image Height : 3024
Image Width : 3024
Image Height : 4032
コマンドには-auto-orient
次のものが含まれます。
for img in IMG*jpeg; do convert "$img" -auto-orient -gravity Center -resize 35% -pointsize 65 \
-fill red -annotate +30+30 %[exif:DateTimeOriginal] "time_""$img";
echo "watermarked $img successfully"
done
結果: