I have been pulling my hair out trying to gather exif data from HEIC photos on windows. Pyheif is not supported on windows, and I need a solution that will also work on MacOs. Efficiency is important as well, I do not want to have to convert the images to jpg, but will try that as a last resort. I have tried pillow-heif, and it is not opening the photos in way where the exif data is accessible.
Below is the code I am using.
def get_exif_data_pillow(file, folder_path):
"""Retrieve EXIF data from an image using Pillow's _getexif method."""
register_heif_opener()
try:
with Image.open(os.path.join(folder_path, file)) as img:
return img._getexif()
except Exception as e:
print(e)
From what I can see when debugging pycharm, 'img' is registered as:
<pillow_heif.as_plugin.HeifImageFile image mode=RGB size=3024x4032 at 0x22DEC75A610>
so it is opening the file. However upon inspection, it does not have any exif data. The photos I am using have loads of exif data so this does not make sense to me. Furthermore, img._getexif() returns a mysterious index out of range error, probably from trying to access the non-existant exif data.
Is there anything I can do here to save this? This would be the most elegant and simple solution - if it worked.