![是否有一个程序可以比较图像文件并报告它们在像素上是否完全相同?](https://linux22.com/image/1311201/%E6%98%AF%E5%90%A6%E6%9C%89%E4%B8%80%E4%B8%AA%E7%A8%8B%E5%BA%8F%E5%8F%AF%E4%BB%A5%E6%AF%94%E8%BE%83%E5%9B%BE%E5%83%8F%E6%96%87%E4%BB%B6%E5%B9%B6%E6%8A%A5%E5%91%8A%E5%AE%83%E4%BB%AC%E5%9C%A8%E5%83%8F%E7%B4%A0%E4%B8%8A%E6%98%AF%E5%90%A6%E5%AE%8C%E5%85%A8%E7%9B%B8%E5%90%8C%EF%BC%9F.png)
我正在为某些渲染软件制作回归测试套件。我需要能够加载图像文件(最好是 PNG 或 TGA)并将像素值与标准批准图像进行比较。
我也希望它是命令行驱动的,这样我就可以创建一个批处理文件来运行所有测试。
到目前为止我发现的所有比较实用程序要么显示差异(如果它们不同,我只需要它失败)要么比较所有字节,这意味着元数据将触发失败。
有人有什么建议吗?我不是程序员,只能勉强拼凑一个批处理脚本。
谢谢您的任何建议。
答案1
经过一番研究,我发现 TGA 文件没有元数据,所以我可以使用简单的 fc 来比较它们。但是,如果存在大量差异,fc 会非常慢,所以我进行了一些搜索,找到了 FCMP(http://www.gammadyne.com/cmdline.htm#fcmp) 完全满足我的需要,而且是免费的。
我还可以使用另一个命令行程序将其他格式更改为 TGA,这样也能很好地运行。
感谢其他试图提供帮助的人!
答案2
取决于您使用的平台。如果您使用的是 Mac,iPhoto 和 Duplicate Annihilator 可以查找重复的照片。
如果您想确保图片相同,可以尝试该diff
命令。
diff picture1.png picture2.png
但它不会告诉你它们的区别。
没有输出意味着它们是相同的,但如果输出是
Binary files photo.png and photo2.png differ
需要更多信息。这样的话,请让我了解更多有关环境的信息,这样我就可以编写脚本了。
请记住,如果图片实际上是相同的,但尺寸即使只改变了一个像素,它也会告诉您它们不是同一张图片。
答案3
我保留了几个重复检测程序,但有一段时间没有使用它们了。
重复检测器http://www.prismaticsoftware.com/
图片克隆、百分比匹配、2 个参数可微调。算法类型有很多选项。用于在一个或两个文件池中查找重复图片。3 部分过程需要一些额外的思考,但可以提供很好的列表以供交叉引用。重复记录、自动移动和其他我不使用的功能可能对您更有用?
“克隆间谍”http://www.clonespy.com/
数据克隆, 100% 匹配,名称匹配,比较池,适合查找名称不同的重复,但当文件具有不同的标题时并不是很有用。