import os
from PIL import Image
from PIL.ExifTags import TAGS

# Input and output paths
input_file = r"C:\Temp\projectDigitalPhotography\ORG\IMG_0501.JPG"
output_file = r"C:\Temp\projectDigitalPhotography\ORG\metadataExtracted.txt"

def extract_metadata(image_path):
    metadata = {}

    try:
        img = Image.open(image_path)
        exif_data = img._getexif()

        if exif_data is not None:
            for tag_id, value in exif_data.items():
                tag = TAGS.get(tag_id, f"UnknownTag_{tag_id}")
                metadata[tag] = value
        else:
            metadata["INFO"] = "No EXIF metadata found."

    except Exception as e:
        metadata["ERROR"] = str(e)

    return metadata


def save_metadata(metadata, output_path):
    with open(output_path, "w", encoding="utf-8") as f:
        for key, value in metadata.items():
            f.write(f"{key}: {value}\n")


if __name__ == "__main__":
    data = extract_metadata(input_file)
    save_metadata(data, output_file)
    print(f"Metadata extracted and saved to: {output_file}")
