from PIL import Image, ExifTags
def print_exif(img_path):
img = Image.open(img_path)
img_exif = img.getexif()
for key, val in img_exif.items():
if key in ExifTags.TAGS:
print(f"{ExifTags.TAGS[key]} ({key}): {val}")
else:
print(f"(unknown) {key}: {val}")
print_exif("sample.jpg")
PrintImageMatching (50341): b'PrintIM\x000300\x00\x00\x00\x03\x00\x01\x00"\x00"\x00\n\x00\x00\x00\x00\x00\x0b\x00\x00\x00y\x00\x00\x00\x00\x00\x00' ResolutionUnit (296): 2 ExifOffset (34665): 158 ImageDescription (270): DCIM\101RECNX Make (271): RECONYX Model (272): UltraFire Software (305): 1.6.20190312a Orientation (274): 1 DateTime (306): 2021:04:26 05:25:21 YCbCrPositioning (531): 1 XResolution (282): 72.0 YResolution (283): 72.0
print_exif("sample2.jpg")
ResolutionUnit (296): 2 ExifOffset (34665): 240 Make (271): CUDDEBACK Model (272): G-2+ Software (305): 1200 FW 7.10.0 DateTime (306): 2021:06:27 23:01:30 Orientation (274): 1 YCbCrPositioning (531): 2 Copyright (33432): Copyright Cuddeback, 2021 XResolution (282): 72.0 YResolution (283): 72.0
from datetime import datetime
def get_image_date(img_path):
img = Image.open(img_path)
date_raw = img.getexif()[306]
return datetime.strptime(date_raw, "%Y:%m:%d %H:%M:%S")
get_image_date("sample.jpg")
datetime.datetime(2021, 4, 26, 5, 25, 21)