📜  添加元数据 png PIL - Python (1)

📅  最后修改于: 2023-12-03 15:40:46.291000             🧑  作者: Mango

添加元数据 png PIL - Python

在处理图片时,很多时候需要为图片添加元数据(metadata),例如图片的作者、照片拍摄时间等等。PIL (Python Imaging Library) 是一个强大的 Python 图像处理库,它提供了一系列操作图片元数据的方法。

1. 安装 PIL

在使用 PIL 前需要先安装 PIL,使用 pip 命令即可安装:

pip install Pillow
2. 添加元数据

要添加元数据,需要使用 PIL 中的 PIL.Image 模块和 PIL.ExifTags 模块。下面是一个添加图片作者和拍摄日期的示例:

from PIL import Image
from PIL.ExifTags import TAGS

def set_image_metadata(img_path, author, created_time):
    # 打开图片
    img = Image.open(img_path)

    # 获取图片 EXIF 信息
    exif_dict = {}
    try:
        for k, v in img._getexif().items():
            exif_dict[TAGS.get(k)] = v
    except AttributeError:
        pass

    # 添加元数据
    exif_dict['Artist'] = author
    exif_dict['DateTimeOriginal'] = created_time

    # 重新写入 EXIF 信息
    exif_bytes = b''
    for k, v in exif_dict.items():
        tag_id = TAGS.get(k)
        if tag_id:
            exif_bytes += pack('<HH', tag_id, 2) + pack('<I', 1) + pack('<H', v)

    img.save(img_path, exif=exif_bytes)

这个示例中,我们编写了一个名为 set_image_metadata 的函数,它接受一个图片路径、作者名和拍摄时间,然后向图片的元数据中添加了 ArtistDateTimeOriginal 两个元素。最后,使用 img.save 函数将修改后的 EXIF 信息写回到原图片中。

3. 示例

下面是如何调用这个函数的示例:

img_path = '/path/to/image.png'
author = 'John Doe'
created_time = '2021:01:01 12:00:00'
set_image_metadata(img_path, author, created_time)

运行这段代码后,图片 /path/to/image.png 的作者和拍摄日期将被设置为 John Doe2021:01:01 12:00:00

4. 总结

本文介绍了如何使用 PIL 添加图片元数据,示例代码中演示了如何添加作者和拍摄日期。通过学习本文,你可以了解到 PIL 中操作元数据的方法,并自己编写代码添加更多元数据。