Python:Images
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"]})