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

如何用Python修改JPG图片的元数据标签?已尝试pyexif、PIL未果

Python修改图片元数据标签的解决方案

针对你遇到的问题,推荐以下几个实用的Python库来修改图片元数据,覆盖你需要的各类标签:

方案1:使用pyexiv2(全面支持多类元数据)

pyexiv2是专门处理图片元数据的工具,支持读写Exif、IPTC、XMP等主流标准,能修改Windows属性里的作者、标题、关键字等标签。

安装

pip install pyexiv2

示例代码

import pyexiv2

# 打开目标图片
img = pyexiv2.Image("your_image.jpg")

# (可选)查看当前元数据
current_exif = img.read_exif()
print("当前Exif数据:", current_exif)

# 修改Exif类标签(作者、描述)
img.modify_exif({
    "Exif.Image.Artist": "Diego Gonzalez",
    "Exif.Image.ImageDescription": "自定义图片描述"
})

# 修改IPTC类标签(标题、关键字)
img.modify_iptc({
    "Iptc.Application2.ObjectName": "图片标题",
    "Iptc.Application2.Keywords": ["风景", "摄影"]
})

# 修改XMP类标签(更丰富的自定义字段)
img.modify_xmp({
    "Xmp.dc.title": "XMP格式标题",
    "Xmp.dc.creator": ["Diego Gonzalez"]
})

# 保存修改并关闭
img.close()

方案2:使用piexif(轻量Exif处理)

如果只需要处理基础Exif标签,piexif是轻量选择,无需额外依赖,可配合PIL使用。

安装

pip install piexif

示例代码

import piexif
from PIL import Image

# 打开图片并读取现有Exif数据
img = Image.open("your_image.jpg")
exif_data = piexif.load(img.info.get("exif", b""))

# 修改Exif标签
exif_data["0th"][piexif.ImageIFD.Artist] = "Diego Gonzalez"
exif_data["0th"][piexif.ImageIFD.ImageDescription] = "自定义图片描述"

# 转换为字节并保存修改后的图片
exif_bytes = piexif.dump(exif_data)
img.save("modified_image.jpg", exif=exif_bytes)

方案3:使用pyexiftool(适配复杂元数据场景)

如果需要修改一些特殊的系统属性标签,可借助exiftool工具(需先安装对应系统版本,确保命令行可运行),通过pyexiftool调用它。

安装Python包装器

pip install pyexiftool

示例代码

from exiftool import ExifToolHelper

with ExifToolHelper() as et:
    # 单张或批量修改元数据
    et.set_tags(
        "your_image.jpg",
        tags={
            "Author": "Diego Gonzalez",
            "Title": "自定义标题",
            "Keywords": ["Python", "元数据处理"]
        }
    )

注意事项

  • 不同图片格式支持的元数据标准不同:JPG全面支持Exif/IPTC/XMP,PNG主要支持XMP,部分小众格式可能有兼容性限制。
  • 你之前用PIL失败,是因为PIL仅支持基础Exif读取,大部分扩展标签需要用专门的元数据库处理。

内容的提问来源于stack exchange,提问作者Diego Gonzalez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 11:35:22