【问题标题】:read and write exif metadata in Python from a TIF image在 Python 中从 TIF 图像读取和写入 exif 元数据
【发布时间】:2015-12-14 22:58:10
【问题描述】:

我正在寻找 Python 中的库或特定函数,以通过数码相机从 TIFF 图像中读取和写入 exif metadata

我的 16 位 TIFF 格式的图片有以下属性,用ImageMagick 识别:

Properties:
date:create: 2015-09-02T16:01:49-06:00
date:modify: 2015-09-02T18:00:37-06:00
exif:ExposureTime: 0.00125
exif:FNumber: 2.8
exif:FocalLength: 16
exif:ISOSpeedRatings: 400
signature: e72808cba367184ab5c8f9c06d52701c7850e114155676857d2912b4743f243a
tiff:alpha: unspecified
tiff:artist:
tiff:endian: lsb
tiff:make: Sony
tiff:model: NEX-7
tiff:photometric: RGB
tiff:rows-per-strip: 1
tiff:software: dcraw v9.25
tiff:timestamp: 2014:07:28 08:34:56

如果我使用公共库(es:tifffile)在 Python 中读写,我会丢失我的元数据

import tifffile as tiff
from skimage import io
myimage = 'C:\\foo.tiff'
image = tiff.imread(myimage)
io.imsave("C:\\foo_new.tiff", image)

形成 ImageMagick

Properties:
date:create: 2015-09-17T15:58:07-06:00
date:modify: 2015-09-17T16:00:34-06:00
signature: e72808cba367184ab5c8f9c06d52701c7850e114155676857d2912b4743f243a
tiff:alpha: unspecified
tiff:endian: lsb
tiff:photometric: RGB
tiff:rows-per-strip: 1
tiff:software: tifffile.py
tiff:timestamp: 2015:09:17 16:00:27

【问题讨论】:

    标签: python metadata tiff exif


    【解决方案1】:

    你可以使用Wand:

    from wand.image import Image
    
    with Image(filename='test.tif') as image:
        for k, v in image.metadata.items():
            print("{}: {}".format(k, v))
    
        image.save(filename='copy.tif')
    

    【讨论】:

    • 谢谢。但是例如,如果我想修改我的数据(例如:从 16 位到 8 位),我可以使用这个库吗?
    • WandImageMagick 的包装器,因此如果您可以创建一个适用于您的文件的命令行命令,那么应该可以编写具有相同功能的 Python 代码。例如,尝试操纵Image.depth 值。
    • Wand 不支持写入元数据,所以它不是这个问题的解决方案。
    • 您可以查看PyExifTool,它是exiftool 的python 包装器。
    猜你喜欢
    • 2017-09-11
    • 2019-01-02
    • 2018-01-18
    • 1970-01-01
    • 1970-01-01
    • 2011-06-13
    • 2021-12-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多