Imagemagick, 사진 촬영 날짜를 이미지에 인쇄하는 방법

Imagemagick, 사진 촬영 날짜를 이미지에 인쇄하는 방법

데비안의 Imagemagick 6.9.11-60. 사진을 촬영한 날짜와 시간을 이미지에 어떻게 인쇄하나요? (기존 이미지). 카메라 설정에서 이 옵션을 설정했는데 새 사진에만 작동합니다. 날짜는 이미지 메타데이터에 있습니다. 사진을 찍은 실제 날짜여야 하며 PC 하드 드라이브에 저장된 날짜가 아닙니다.

답변1

가지고 있는 이미지와 메타데이터에 따라 많은 것이 달라질 수 있지만, 예를 들어 ImageMagick을 사용하면 다음을 사용하여 EXIF ​​날짜와 myphoto.jpg시간을 인쇄할 수 있습니다.

magick myphoto.jpg -fill black -undercolor white -pointsize 96 -gravity southeast \
 -annotate 0 ' %[exif:datetime] ' output.jpg

magick해당 명령이 없으면 convert제대로 작동합니다. ISO가 아닌 날짜 형식을 원하는 경우 먼저 다른 도구를 사용하여 날짜를 추출 identify하고 조작할 수 있습니다.awk

identify -format '%[exif:datetime]' myphoto.jpg |
 awk -F'[ :]' '{print $3":"$2":"$1 " " $4":"$5}'

2023:10:04 09:29:24으로 변경됩니다 04:10:2023 09:29.

이미지에 EXIF ​​데이터가 없으면 다른 타이밍 정보(예: )를 찾을 수 있습니다 '%[date:create]'. identify -verbose모든 속성을 나열하려면 파일에 사용하세요.

주석에 적합한 포인트 크기를 계산하려면 다음과 같이 유사하게 identify이미지의 너비를 찾을 수 있습니다.

identify -format '%w' myphoto.jpg

바라보다이미지 매직많은 예와 대안이 있습니다. 다음은 작은 쉘 스크립트입니다:

#!/bin/bash
let ps=$(identify -format '%w' input.jpg)/20
# 2023:10:04 09:29:24
datetime=$(identify -format  %[exif:datetime] input.jpg)
if [ -z "$datetime" ]
then    # date:create: 2023-11-11T14:40:21+00:00
        datetime=$(identify -format  %[date:create] input.jpg)
fi
datetime=$(echo "$datetime" | gawk -F'[- :T+]' '{print $3":"$2":"$1 " " $4":"$5}' )
magick input.jpg -fill black  -undercolor white -pointsize "$ps" -gravity southeast \
 -annotate 0 "$datetime" output.jpg

어노테이션 로즈

관련 정보