algorithm - 有什么简单的方法可以测试两个 PNG 是否相等?

标签 algorithm delphi png

我有一堆 PNG 图片,我正在寻找一种方法来识别重复项。我所说的重复是指两个 PNG 文件,其未压缩图像数据相同,但文件不一定相同。这意味着我不能做一些简单的事情,比如比较 CRC 哈希值。

我认为这实际上可以可靠地完成,因为 PNG 使用无损压缩,但我担心速度。我知道我可以通过先测试相等的尺寸来缩小一些范围,但是当需要实际比较图像时,有什么方法可以合理有效地进行吗? (即比“double-for-loop checking pixel values against each other”暴力法更快?)

最佳答案

  1. 按相同的图像大小(宽度和高度)过滤
  2. 打开文件
  3. 散列未压缩的内容(md5 可能会这样做)
  4. 存储哈希

  5. 比较散列以找到相同的散列

关于algorithm - 有什么简单的方法可以测试两个 PNG 是否相等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2488255/

相关文章:

c# - 如何在 WPF Canvas 上绘制网格线?

delphi - 如何在 ListView 中显示文本文件中的数据?

delphi - 在 IdHTTPServer 中动态更改 SSL 证书

javascript - 将文本嵌入 PNG

javascript - 在 JavaScript 中创建并保存到文件新的 png 图像

algorithm - 搜索已排序的二维矩阵

c++ - 我应该使用什么数据结构来支持插入、删除和随机选择?

algorithm - 求解平方和问题的算法

ios - 如何通过IPv6正确打开网址?

Python:如何使 Reportlab 移动到 PDF 输出中的下一页