如何为tiff文件添加额外的标签

时间:2017-09-18 15:37:04

标签: python tiff pillow

我正在尝试阅读并保存带有一些额外标签的tiff文件,当我制作一个效果很好的新图像但是当我打开图像然后尝试写回一些元标记时,它无效(图像可以是但它会保留原始标签而不做任何更改。

我附上了测试代码,感谢您的帮助!

from PIL import Image, TiffImagePlugin
def test_custom_metadata():

    img = Image.open('myimage.tif')

    info = TiffImagePlugin.ImageFileDirectory()
    CustomTagId = 37000

    info[CustomTagId] = 6
    info.tagtype[CustomTagId] = 3 # 'short' TYPE

    Image.DEBUG=True
    TiffImagePlugin.WRITE_LIBTIFF = False # Set to True to see it break.
    img.save('./temp2.tiff', tiffinfo = info)

test_custom_metadata()

2 个答案:

答案 0 :(得分:1)

以下适用于枕头版本2.3:

from PIL import Image

image_1 = Image.open('input.tiff')
image_1.tag[37000] = 'my special tiff tag'
image_1.save('output.tiff', tiffinfo=image_1.tag)

image_2 = Image.open('output.tiff')
print image_2.tag[37000]

当在当前文件夹中使用my special tiff tag运行时,会打印input.tiff

我的理解是,这只适用于不使用libtiff编写文件的情况。使用libtiff时,将忽略自定义标记。

答案 1 :(得分:0)

对于对此主题感兴趣的人:

C/C++ method to add custom tag for tiff file

这将完美地解决问题