forked from james-see/python-examples
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathexif_reader-example.py
41 lines (36 loc) · 1.03 KB
/
exif_reader-example.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
"""Show how to get exif data and iptc data from various libraries."""
import sys
from PIL import Image
try:
import exifread
except ModuleNotFoundError as e:
print(e, "pip3 install this!")
exit(1)
try:
import iptcinfo3
except ModuleNotFoundError as e:
print(e, "pip3 install this!")
exit(1)
# Open image file for reading (binary mode)
path_name = 'assets/cat.jpg'
f = sys.argv[1] # check to see if image in command line
f = open(f, 'rb')
# Return Exif tags
tags = exifread.process_file(f)
totaltags = len(tags)
print('-------EXIF DATA FOUND-------')
print(f"Total EXIF tags found: {totaltags}")
for tag in tags.keys():
print("Key: %s, value %s" % (tag, tags[tag]))
print('-----------------END EXIF DATA-------')
im = Image.open(sys.argv[1])
try:
info = iptcinfo3.IPTCInfo(sys.argv[1])
print('-------IPTC DATA FOUND-------')
for k, v in info._data.items():
print(k, v)
info['city'] = '#magistræde #🇩🇰'
info.save()
except Exception as e:
if str(e) != "No IPTC data found.":
raise