有没有办法比较两个具有不同文件名的图像文件?所以我想看看它们是否与javascript相等。这可能吗?
用途:我有一个需要在灯箱中弹出的图片库。当灯箱打开时,我将连接到回调以检查重复的图像,当找到时,将它们从灯箱库中删除,这样用户就不会看到重复的图像。
有没有办法比较两个具有不同文件名的图像文件?所以我想看看它们是否与javascript相等。这可能吗?
用途:我有一个需要在灯箱中弹出的图片库。当灯箱打开时,我将连接到回调以检查重复的图像,当找到时,将它们从灯箱库中删除,这样用户就不会看到重复的图像。
我想你可以。伪代码:
- 检查图像是否具有相同的宽度和高度。如果不是,它们就不可能相同。
- 创建一个可以并排放置两个图像的画布。
- 在画布上绘制图像。
- 逐个像素地比较它们。这可以使用 从 HTML Canvas 中的 getPixel 借来的代码相当容易地完成?
- 记住,一旦单个像素不匹配,就要跳出循环。
- 您最坏情况的运行时间将是 O(wh),这发生在图像实际上相等时。
Tyler 是正确的,未经用户同意,您不能访问文件系统。
但是,如果您想比较 javascript 代码可用的图像,例如通过使用 url 或使用上传字段,您应该查看这个 SO 问题:Compare two Images in JavaScript
基本上,您将图像转换为canvas
元素并使用该base64
值来比较两者,就像人们通过检查该文档的校验和来确认文档是否“有效”一样。