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

如何在Python中实现3D TIFF文件间的元数据复制?

如何在Python中复制3D TIFF图像的所有元数据?

我正尝试在Python中将一个3D TIFF图像的所有元数据复制到另一个文件中。用Perl工具exiftool可以轻松实现:

exiftool -tagsfromfile <source-file> <target-file>

但把它作为Python流水线的依赖安装并不方便。

我试过几个Python库读取TIFF元数据:

  • 使用exifread读取:
    import exifread
    
    with open("img_w_metadata.tiff", 'rb') as f:
        tags = exifread.process_file(f)
    
  • 使用piexif读取:
    import piexif
    
    exif_data = piexif.load("img_w_metadata.tiff")
    

但修改或插入元数据的操作很棘手:

  • exifread没有相关的修改/插入文档;
  • piexif仅支持JPG文件,处理TIFF时会报错。尝试写入的代码如下(会擦除图像内容):
    # Open TIFF file for writing     # THIS ERASES THE IMAGE CONTENTS
    with open("img_no_metadata", "wb") as f:
        exif_bytes = piexif.dump(exif_data)
        f.write(exif_bytes)
    
    报错信息:
    Traceback (most recent call last): 
         piexif.insert(exif_bytes, img_new)   File "C:\Users\......\Python39\site-packages\piexif\_insert.py",line 39, in insert
         raise InvalidImageDataError piexif._exceptions.InvalidImageDataError
    

其他试过的库也有各自问题:

  • Pillow处理元数据表现良好,但不支持3D图像;
  • OpenCV支持3D图像却无法处理元数据;
  • Tifffile库会擦除目标文件内容。

求解决办法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 05:39:52