get_image_exif.ipynb 3.6 KB

# Get EXIF data from image
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)
Copyright © 2023 Felix Kleinsteuber and Computer Vision Group, Friedrich Schiller University Jena