有没有结束-exif/端的频率/最终iptc/开始的数据标记,我可以使用一个校的只是数据的一部分jpg/jpeg(和其他图像的格式)?

有帮助吗?

解决方案 6

MediaTags 具有用于JPEG,MP3,M4A等

的校验和支持

其他提示

我认为这个问题与此相关的一个 计算的散列只有核心的图像数据(不包括元数据)一个图像, https://stackoverflow.com/a/10075170/890106 给一个元素的答案如果你在寻找的代码。

它可能不适用于所有JPG变体:他们中的一些可以嵌入多的图像(强积金/CIPA多图片格式,更详细的信息在 http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/MPF.html)和您可能仍然有一些元数据。此外,一些软件的制UID的形式--[0-9A-F]+--在本文件结束它不应该阅读。最安全解决方案,如果可能来校验和素(虽然你仍然可以有影响力的方向,颜色轮廓,..).

一个简单的方法得到的只是像素数据的散列总和是将JPEG转换成一个32位的BMP或备选地成PNG并计算从该一个哈希和。这将剥去JPEG文件的所有相关信息,甚至会配合不同的充编码的JPEG铅相同的像素数据。你当然可以也直接使用生成骨形成蛋白的内存像素数据,如果你把它(即Windows有几个API函数从任何支持的图像类型得到它)。

是为JPEG和EXIF,我不知道其他人。

在JPEG规范,我有被称为JFIF(JPEG文件交换格式),它来自于ISO 10918-1的附录B和像所有的ISO规格,它需要仔细阅读弄清楚如何规范到数据结构转换。我想是更容易跟踪

EXIF格式解析很像TIFF格式。每块都有一个类型和大小,所以你只要走的块,直到你得到的图像数据块。它有一个指针图像数据(实际上指针条,但我敢肯定,你可以承担一切后的图像数据到文件末尾的第一条是图像数据。

Exif格式具有其自己的网站

您得看看每一种格式。对于JPEG,它看起来像 意味着你可以做的校验和结构与FFEn(例如0xFFE1)开始和校验和每个标记(它看起来像长度如下所述标记和为2个字节在big-endian格式)之后指定的字节部分。有关更多细节,请参阅这里

由于要为各种图像格式做到这一点,你应该只使用一个通用的图像解压缩库和未压缩的数据运行校验和。这将允许您匹配相同的图像,即使它们在磁盘上不同编码。

如果你想限制自己JPEG,您可以校验SOI和EOI之间的数据。 这个答案可以稍微适应你的需要。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top