Pythonで写真ファイルのEXIF情報を読み取り、他の写真に書き込むためには、Pillow
というPython Imaging Library (PIL) のフォークライブラリを使用します。Pillow
は画像処理に便利な多くの機能を提供しており、EXIF情報の読み書きもサポートしています。
以下の手順に従って、PythonプログラムでPillow
を利用して写真のEXIF情報を読み取り、別の写真にEXIF情報を書き込むサンプルコードを示します。
Pillow
のインストール: まず、Pillow
をインストールしてください。
pip install Pillow
- Pythonプログラムの作成: 以下は、Pythonプログラムのサンプルコードです。このプログラムでは、指定したフォルダ内のすべてのJPGファイルのEXIF情報を読み取り、別の指定した写真にEXIF情報を書き込みます。
from PIL import Image import os def read_exif(source_path): with Image.open(source_path) as img: exif_data = img.info.get('exif') return exif_data def write_exif(target_path, exif_data): with Image.open(target_path) as img: exif = img.info.get('exif') if exif_data and exif: exif.update(exif_data) else: exif = exif_data img.save(target_path, exif=exif) def copy_exif(source_path, target_path): exif_data = read_exif(source_path) write_exif(target_path, exif_data) # フォルダ内のJPGファイルのリスト folder_path = 'フォルダのパス' # 書き込む対象の写真のパス target_photo_path = '対象写真のパス' for filename in os.listdir(folder_path): if filename.lower().endswith('.jpg'): source_path = os.path.join(folder_path, filename) copy_exif(source_path, target_photo_path) print(f"Copied EXIF data from {source_path} to {target_photo_path}")
このプログラムを実行すると、指定したフォルダ内のすべてのJPGファイルのEXIF情報が読み取られ、別の写真にそのEXIF情報が書き込まれます。ただし、EXIF情報が存在しない写真や対象写真のフォーマットがEXIF情報の書き込みに対応していることを確認してください。
また、プログラムを実行する前に、Pillow
がインストールされていることを確認してください。