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

How to add additional Tag for tiff file

我正在尝试读取并保存一个带有一些附加标签的 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()

以下适用于 Pillow 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]

当当前文件夹中 运行 一个 input.tiff 时打印 my special tiff tag

我的理解是,这仅在您不使用 libtiff 写入文件时才有效。使用 libtiff 自定义标签时将被忽略。

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

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

完美解决问题