0

我有一些 cr2 文件。

我想做一个C++程序,或者写一个脚本,把不同焦距的cr2文件分开,放在不同的目录下。

我怎样才能做到这一点 ?

我可以访问佳能 EDSDK 和 LibRaw,但我不确定在哪里可以找到焦距信息。

我还有一个可以读取元数据的小实用程序“ExifTool”——但我不知道如何让它做我想做的事情——当通过网络读取 5000 个文件时,gui 版本似乎崩溃了......

请问有人可以给我一个建议吗?

4

1 回答 1

1

EXIF 规范可以在这里找到:

http://www.exif.org/specifications.html

您将需要读取 EXIF 数据,并找到包含“标签”37386 或 0x920A 的条目。后面跟着一个“RATIONAL”数,它本质上是两个无符号整数组成一个分数,例如 400/20 = 20 mm,80/5 或 20/1 也是如此。14.5mm 镜头必须(至少)存储为 29/2,但可以存储为 145/10 或 1450/100 - 或大量其他变体。

当然,如果您使用例如 ExifTool,您可以使用脚本轻松完成此操作,或者使用它的 Perl 绑定在 Perl 中编写脚本。

还有一个与 exiftool 一起使用的 C++ 接口:http: //owl.phy.queensu.ca/~phil/cpp_exiftool/

使用从TagInfo中返回的ImageInfo(),应该可以找到 FocalLength 并相应地移动文件。

我不会给你写代码,但是上面的信息应该可以给你一个思路。

于 2013-12-28T09:51:40.650 回答