문맥
아이폰 사진둘 다: 세로 및 가로에는 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
결과: