Python で写真データの作成日を画像に書き込む方法

Python を用いて写真データの作成日を取得し,その日付を写真へ直接書き込む方法について解説する。写真管理の自動化や記録用途に有効な手法である。

ライブラリ読み込み

まず,PIL モジュール,datetime モジュール,pathlib モジュールから必要なオブジェクトを読み込む。

from PIL import Image, ImageDraw, ImageFont
from datetime import datetime
from pathlib import Path

出力先フォルダの作成

作成日を記載した写真を保存するため,フォルダ dest を作成する。

current=Path()
target=Path('dest')
target.mkdir(exist_ok=True)

作成日の書式設定とフォント指定

次に,写真へ書き込む作成日の書式設定を行う。フォントは 'arial',フォントサイズは 36 とし,文字配置のためのマージンを設定する。

fnt =ImageFont.truetype('arial',36)
marginx=20
marginy=20

写真への作成日の書き込み処理

現在のフォルダ内にある .jpg ファイルをすべて対象とし,それぞれの作成日を右下に書き込む。

for path in current.glob('*.jpg'):
    st_ctime=path.stat().st_ctime
    ctime = datetime.fromtimestamp(st_ctime)
    datestr=f'{ctime:%Y/%m/%d}'
    boxsize=fnt.getbbox(datestr)
    img=Image.open(path)
    draw=ImageDraw.Draw(img)
    draw.text((img.width-boxsize[2]-marginx,img.height-boxsize[3]-marginy),datestr,font=fnt)
    img.save(target/path)

出力例

以下は,Python により作成日を写真へ書き込んだ例である。右下に作成日 2023/08/10 が表示されていることが確認できる。

参考文献

  • リブロワークス,「つなげば動く!Python ふりがなプログラム パターン文例 80」,インプレス,2020年7月21日

更新履歴

  • 2023年8月11日 新規作成
  • 2026年2月28日 加除修正

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です