Untitled

mail@pastecode.io avatar
unknown
plain_text
8 days ago
1.4 kB
11
Indexable
Never
def add_meta_data_to_image(filepath, heading):
    statement = create_statement(heading)
    try:
        # Open the image file
        with Image.open(filepath) as img:

            # Check if the image has EXIF data
            exif_data = img.getexif()

            if exif_data:
                # Load existing EXIF data
                exif_dict = piexif.load(exif_data.tobytes())
            else:
                # Create a new EXIF dictionary
                exif_dict = {"0th": {}, "Exif": {}, "GPS": {}, "1st": {}}

            # Set custom metadata
            exif_dict['0th'][piexif.ImageIFD.Copyright] = f"This image belongs to {site_name}. This image is for explaining '{heading}' and should not be used without permission of {site_name}."
            exif_dict['0th'][piexif.ImageIFD.ImageDescription] = f"{statement}"
            exif_dict['0th'][piexif.ImageIFD.Rating] = 5
            if author_owner:
                exif_dict['0th'][piexif.ImageIFD.Artist] = f"{author_owner}"

            # Convert the EXIF dictionary to bytes
            exif_bytes = piexif.dump(exif_dict)

            # Save the image with the new EXIF data
            img.save(filepath, "jpeg", exif=exif_bytes)

            print(f"Image processed and saved with metadata: {filepath}")

    except Exception as e:
        print(f"Error processing image: {e}")
Leave a Comment