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

如何删除PNG图片中此前通过Pillow添加的自定义元数据?

PNG自定义文本元数据删除方法

你此前通过PngInfo添加的自定义内容属于PNG格式的tEXt块数据,根据不同删除需求可以参考以下两种操作方案:

场景1:完全删除所有自定义文本元数据

保存图片时不携带任何自定义元数据即可完成全量删除,代码示例如下:

from PIL.PngImagePlugin import PngImageFile

# 加载带有自定义元数据的原图片
target_img = PngImageFile("你的原图片路径.png")
# 保存时传入pnginfo=None,不携带任何自定义文本元数据
target_img.save("删除元数据后的新图片.png", pnginfo=None)

# 验证删除结果
new_img = PngImageFile("删除元数据后的新图片.png")
print(new_img.text)
# 输出为 {} 即代表所有自定义文本元数据已清除

场景2:仅删除指定的自定义元数据,保留其余元数据

如果需要保留部分已添加的元数据,只删除指定字段,可以参考以下代码:

from PIL.PngImagePlugin import PngImageFile, PngInfo

target_img = PngImageFile("你的原图片路径.png")
# 获取当前图片已有的所有自定义元数据
exist_meta = target_img.text

# 填写需要删除的元数据key列表
delete_keys = ["MyNewString", "MyNewInt"]
for key in delete_keys:
    if key in exist_meta:
        del exist_meta[key]

# 生成新的元数据对象写入保留的内容
new_png_info = PngInfo()
for k, v in exist_meta.items():
    new_png_info.add_text(k, v)

# 保存图片
target_img.save("删除指定元数据后的新图片.png", pnginfo=new_png_info)

# 验证结果
new_img = PngImageFile("删除指定元数据后的新图片.png")
print(new_img.text)

注意事项

  • 操作前建议备份原图片,避免误删需要保留的内容
  • 该操作仅修改自定义文本元数据,不会影响图片本身的画质、尺寸等核心属性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 22:45:05