将二进制 JPEG 图像数据加载到 PHP 变量中以进行 MD5 散列

Posted

技术标签:

【中文标题】将二进制 JPEG 图像数据加载到 PHP 变量中以进行 MD5 散列【英文标题】:Load binary JPEG image data into PHP variable for MD5 hashing 【发布时间】:2017-08-28 14:53:21 【问题描述】:

我正在编写一个 php 脚本来验证两个文件中的 JPEG 数据是否相同。 EXIF/IPTC(元数据)可能会在两个文件之间发生变化。

我的一般做法是使用 MD5 哈希来比较两个文件的二进制 JPEG 数据,以确认它没有改变。

但是,无论我使用 GD 做什么,我似乎都得到了元数据和 JPEG 数据的 MD5 哈希值。有谁知道使用 PHP 从 JPEG 文件中提取图像数据的最佳方法?

提前谢谢...

【问题讨论】:

这是 Python 中的解决方案,您可能能够适应 PHP,因为它归结为字节操作:***.com/questions/10075065/… 您也可以尝试在散列之前使用 mogrify -strip image.jpg 剥离元数据 【参考方案1】:

@jarek.d 上面建议使用 mogrify(imagemagick 的一部分),所以我使用 exec 在比较两个文件之前剥离元数据。这很好用。

【讨论】:

以上是关于将二进制 JPEG 图像数据加载到 PHP 变量中以进行 MD5 散列的主要内容,如果未能解决你的问题,请参考以下文章

如何将jpeg大小减小到“所需大小”?

在 iOS 上从两个 jpeg 加载 RGBA 图像 - OpenGL ES 2.0

如何将 jpeg 大小减小到“所需大小”?

Javascript 画布 - 从加载的 4 波段 RGB 图像中删除 alpha 到 3 波段 JPEG 图像?

浏览器显示 jpeg 的原始图像数据。我应该确保在响应中包含哪些标题?

从数据转储中提取 JPEG/PNG/GIF 图像