📅  最后修改于: 2023-12-03 15:40:46.291000             🧑  作者: Mango
在处理图片时,很多时候需要为图片添加元数据(metadata),例如图片的作者、照片拍摄时间等等。PIL (Python Imaging Library) 是一个强大的 Python 图像处理库,它提供了一系列操作图片元数据的方法。
在使用 PIL 前需要先安装 PIL,使用 pip 命令即可安装:
pip install Pillow
要添加元数据,需要使用 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
的函数,它接受一个图片路径、作者名和拍摄时间,然后向图片的元数据中添加了 Artist
和 DateTimeOriginal
两个元素。最后,使用 img.save
函数将修改后的 EXIF 信息写回到原图片中。
下面是如何调用这个函数的示例:
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 Doe
和 2021:01:01 12:00:00
。
本文介绍了如何使用 PIL 添加图片元数据,示例代码中演示了如何添加作者和拍摄日期。通过学习本文,你可以了解到 PIL 中操作元数据的方法,并自己编写代码添加更多元数据。