使用 VBA 恢复 JPG 文件中的元数据

问题描述 投票:0回答:2

现在找到了一个批量编辑程序,它将帮助我重新控制堆积如山的图片文件。它的另一面是部分元数据在编辑中消失。我不会因为丢失高级相机设置而哭泣,但我想保留的一些东西是照片日期和相机型号。

使用以下方法可以轻松完成检索所选信息:

Set objShellApp = CreateObject("Shell.Application")
Set objFolder = objShellApp.Namespace(strFolder)
Set objFolderItem = objFolder.ParseName(strFile)
... followed by...
Cells(2,iColumn).Value = objFolder.getdetailsof(objFolderItem, 12) '(12 = photo taken)*<br>
Cells(3,iColumn).Value = objFolder.getdetailsof(objFolderItem, 30) '(30 = camera model)

(...等选定的详细信息)

在文件夹循环中,结果将是一个工作表,其中包含文件名及其元数据在表中......这就是我现在所在的位置。我正在搜索,我正在搜索,我似乎唯一找到的是检索信息的不同方法,但我想知道的是如何将其放回到文件中。

提前致谢。
/尼克

vba
2个回答
1
投票

您想要做的是通过 VBA 修改图像文件标签/属性,但不支持。

Shell32.Folder
仅支持读取,并且大多数方法对于文件夹对象内的
Shell32.FolderItem
都是只读的。
修改元数据的唯一方法是通过外部工具exiftool
但它是一个命令行工具,因此请使用此post从 excel vba 运行它。


0
投票

您可以使用 WIA 对象读取和写入图像文件中的元数据。

© www.soinside.com 2019 - 2024. All rights reserved.