You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

编辑照片时如何使用Python为图片添加元数据?

Python 为图片添加标题/描述/关键词元数据实现方案

你可以结合现有使用的Pillow库,搭配轻量元数据处理库实现需求,无需额外切换其他软件操作,以下是可直接套用的实现方案:

前置依赖安装

首先安装需要的第三方库:

pip install pillow piexif pyiptcinfo3
  • piexif 用于处理图片EXIF元数据
  • pyiptcinfo3 用于处理IPTC元数据(标题、描述、关键词通常存在该字段下,兼容性更好)

整合你现有编辑流程的完整代码

以下代码在你原有调整图片对比度的逻辑基础上,增加了元数据写入步骤:

from PIL import Image, ImageEnhance
import piexif
from iptcinfo3 import IPTCInfo

# 1. 原有图片编辑逻辑:调整对比度
im = Image.open("sample-image.jpg")
enhancer = ImageEnhance.Contrast(im)
factor = 1.5
im_output = enhancer.enhance(factor)

# 2. 先保存临时编辑后的图片,用于后续写入元数据
temp_path = 'temp_edit.jpg'
im_output.save(temp_path)

# 3. 写入IPTC元数据(标题、描述、关键词)
iptc = IPTCInfo(temp_path, force=True)
# 写入标题
iptc['object name'] = '你的图片标题'
# 写入描述
iptc['caption/abstract'] = '这张图片的详细描述内容'
# 写入关键词,格式为列表
iptc['keywords'] = ['风景', '旅行', '2024']
# 保存元数据修改
iptc.save()

# 4. 可选:补充写入EXIF元数据
exif_dict = piexif.load(temp_path)
# 写入作者信息示例
exif_dict['0th'][piexif.ImageIFD.Artist] = '作者名称'.encode('utf-8')
exif_bytes = piexif.dump(exif_dict)

# 5. 最终保存带有元数据的成品图片
final_img = Image.open(temp_path)
final_img.save('more-contrast-image.jpg', exif=exif_bytes)

# 可选:删除临时文件
import os
os.remove(temp_path)

注意事项

  • 目前元数据写入对JPG格式兼容性最好,PNG、WebP等格式对IPTC字段的支持可能存在差异
  • 如果你只需要写入基础EXIF字段,可以去掉pyiptcinfo3相关逻辑,仅用piexif即可满足需求

内容的提问来源于stack exchange,提问作者project.py

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 15:54:05