Python:Images: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
| Line 9: | Line 9: | ||
PyExifTool is not available as a Debian package. Install it in a [[Python#Virtual_environment]] | PyExifTool is not available as a Debian package. Install it in a [[Python#Virtual_environment]] | ||
;from exiftool import ExfiToolHelper | ;from exiftool import ExfiToolHelper | ||
:ExifToolHelper is a wrapper for ExifTool with some helper functionality. | :ExifToolHelper is a wrapper for ExifTool with some helper functionality. | ||
| Line 25: | Line 25: | ||
print(f"ifd {ifd}") | print(f"ifd {ifd}") | ||
# Set IPTC:Keywords | # Set IPTC:Keywords (not show by Debian eog (Afbeeldingsweergave in Dutch)) | ||
with ExifToolHelper() as et: | with ExifToolHelper() as et: | ||
et.set_tags([filename], | et.set_tags([filename], | ||
Revision as of 20:09, 14 July 2025
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.
from exiftool import ExfiToolHelper
import json
with ExifToolHelper() as et:
metadata = et.get_metadata(filename)
for ifd in metadata:
if isinstance(ifd, dict):
for tag, value in ifd.items():
print(f"{tag}: {value}")
else:
print(f"ifd {ifd}")
# Set IPTC:Keywords (not show by Debian eog (Afbeeldingsweergave in Dutch))
with ExifToolHelper() as et:
et.set_tags([filename],
tags={"Keywords": ["sunny", "nice day", "cool", "awesome"]}
)
# Set XMP:Subject
with ExifToolHelper() as et:
et.set_tags([filename],
tags={"Subject": ["Holiday", "Spain"]}
)