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

Windows10下用Python处理Google Cardboard照片如何保留XMP元数据

解决方案

方案1:高版本Pillow原生支持(最简便,无额外依赖)

Pillow 9.1.0及以上版本已原生支持JPEG等主流图片格式的XMP元数据读写,无需安装其他第三方依赖,仅需在图片导出时传入原图提取的XMP数据即可完成保留。

  • 升级Pillow到最新版本:
    pip install --upgrade pillow
  • 代码示例:
from PIL import Image

# 读取原图并提取XMP元数据
with Image.open("原始全景图.jpg") as origin_img:
    xmp_data = origin_img.info.get("xmp")
    # 此处插入你的图像处理逻辑
    processed_img = origin_img # 此处为示例,替换为实际处理后的图像对象
    # 导出时携带XMP参数
    processed_img.save("处理后全景图.jpg", xmp=xmp_data)

如果仅需要原样保留XMP元数据无需修改,该方案是最优选择。

方案2:预编译版pyexiv2(支持XMP字段修改)

如果需要修改Google Cardboard对应的GPano系列XMP字段,可以使用pyexiv2库,Windows平台提供官方预编译二进制包,完全不需要手动编译依赖:

  • 安装命令:
    pip install pyexiv2
  • 代码示例:
from PIL import Image
from pyexiv2 import Image as MetaImage

# 读取原图完整XMP数据
with MetaImage("原始全景图.jpg") as meta_reader:
    all_xmp = meta_reader.read_xmp()

# 图像处理逻辑
with Image.open("原始全景图.jpg") as img:
    processed = img.rotate(180) # 示例操作
    processed.save("临时输出文件.jpg")

# 将XMP写入处理后的图片
with MetaImage("临时输出文件.jpg") as meta_writer:
    meta_writer.modify_xmp(all_xmp)

方案3:PyExifTool(兼容性最强)

如果上述两种方案无法兼容你的图片格式需求,可以使用ExifTool的Python封装,Windows平台仅需使用官方提供的独立可执行文件,无需编译:

  • 下载Windows版ExifTool可执行文件,重命名为exiftool.exe放在脚本同级目录或系统PATH路径下
  • 安装Python封装库:
    pip install PyExifTool
  • 该工具支持所有图片格式的元数据读写,完全兼容Google Cardboard的XMP字段规范。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 12:48:04