【发布时间】:2014-08-24 06:30:39
【问题描述】:
我的程序用于从 .JPG 文件下载 DateTimeOrginal 数据时遇到问题。我在网上找到了关于它的文档:
https://ExifTool.org/TagNames/EXIF.html
我看到我要查找的数据位于 0x9003 地址。
所以现在我想做的是:
temp = fopen(name, "rb");
打开二进制文件
fseek (temp, 0x9003, SEEK_SET);
将文件指针移动到地址
fscanf(temp, "%s", str);
并将数据加载到 char[] 结构中。
至少有一个是正确的吗?我仍然认为地址有问题,因为在编译该程序后,我只看到文件中的一些垃圾。
【问题讨论】:
-
你在正确的轨道上。您将需要验证数据是否与您尝试读取信息的字符串兼容。我建议您下载并查看程序
jhead的源代码。请参阅:Exif Jpeg header manipulation tool 它将提供一个很好的例子。 -
值
0x9003不是“地址”,它是一个 Exif 标签标记。你需要read up a bit on the Exif format。 -
您要查找的数据以 0x9003 标签开头。这是一个神奇的数字,用于标识其后的数据。您必须先找到 Exif 数据块,然后找到该块中以该标记开头的部分,这就是数据开始的地方。
-
我仍在尝试找出如何计算它。能给个资料吗,去哪里找?每张图片的数据都应该从同一个地方开始?