Python:Images

From wiki
Revision as of 10:55, 18 July 2025 by Hdridder (talk | contribs)
Jump to navigation Jump to search


Images can have meta-data embedded. Most used is Exif[1], other formats are IPT[2] and XMP[3].

It appears that exiftool is the way to go. PyExifTool is a python wrapper for it.

In Debian exiftool is provided by libimage-exiftool-perl. That is automatically selected when you apt install exiftool.

PyExifTool is not available as a Debian package. Install it in a Python#Virtual_environment

from exiftool import ExfiToolHelper
ExifToolHelper is a wrapper for ExifTool with some helper functionality.
et = ExifToolHelper()
Instantiate an ExifToolHelper object. It opens an instance of exiftool in batch mode. Exiftool in closed when the object is terminated
et.terminate()
Destroying the ExifToolHelper object terminates the exiftool instance.
with ExifToolHelper() as et:
Auto terminate the ExifToolHelper object at the end of the block
from exiftool import ExfiToolHelper
import json

with ExifToolHelper() as et:
    metadatalist = et.get_metadata(filename)
    for metadata in metadatalist:
        for tag, value in metadata.items():
            print(f"{tag}: {value}")

# Set IPTC:Keywords (not shown by Debian eog (Afbeeldingsweergave in Dutch))
with ExifToolHelper() as et:
    et.set_tags([filename], tags={"Keywords": ["sunny", "nice day", "cool", "awesome"]})

# Set XMP:Subject  (XMP is newer than IPTC, I prefer to use this)
with ExifToolHelper() as et:
    et.set_tags([filename], tags={"Subject": ["Holiday", "Spain"]})