Debianの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