在 Windows 10 上使用以下 Python 代码,我尝试编辑使用 Nikon Scan 4.0.3(2008 年左右的软件)创建的 tif 图像文件上“拍摄日期”的 EXIF 信息。
import piexif
def setImageDateTakenAttribute(filename, date_taken):
exif_dict = piexif.load(filename)
exif_dict['Exif'] = {
piexif.ExifIFD.DateTimeOriginal: datetime.datetime(*date_taken[:6]).strftime("%Y:%m:%d %H:%M:%S")
}
exif_bytes = piexif.dump(exif_dict)
piexif.insert(exif_bytes, filename)
Run Code Online (Sandbox Code Playgroud)
这在 Python 3 中对于 jpeg 文件运行良好,但是当我尝试使用相同的代码编辑 tif 文件时,出现以下错误:
setImageDateTakenAttribute(full_path, folder_date)
File "image-and-movie-bulk-creation-dates.py", line 78, in setImageDateTakenAttribute
piexif.insert(exif_bytes, filename)
File "C:\Python37\lib\site-packages\piexif\_insert.py", line 39, in insert
raise InvalidImageDataError
piexif._exceptions.InvalidImageDataError
Run Code Online (Sandbox Code Playgroud)
到目前为止,我一直在寻找可能支持我的文件的其他软件包,但没有成功。
有谁知道如何在Python中完成编辑而不删除现有的exif信息,并且不改变图像格式?
要重现或获取失败的 tif 文件的示例,请克隆我的项目(链接如下)。
细节:
将数千张图片扫描到 tif 文件后,我想指定“拍摄日期”的 EXIF 值。我正在编写一个 Python 脚本来在 Windows (BitBucket)中执行此操作,该脚本还将根据以 YYYY-MM-DD * …