可以在Javascript中比较两个图像吗?

时间:2012-06-22 16:04:05

标签: javascript image

有没有办法比较两个具有不同文件名的图像文件?所以我希望看看他们是否与javascript相同。这可能吗?

用于此: 我有一个需要在灯箱中弹出的图像库。当灯箱打开时,我挂钩回调以检查重复的图像,当找到时,将它们从灯箱库中移除,这样用户就不会看到重复的图像。

3 个答案:

答案 0 :(得分:5)

我想你可以。伪码:

  
      
  • 检查图像是否具有相同的宽度和高度。如果没有,他们就不一样了。
  •   
  • 创建一个兼容两个图像的画布。
  •   
  • 在画布上绘制图像。
  •   
  • 逐像素地比较它们。使用从getPixel from HTML Canvas?
  • 借来的代码可以非常轻松地完成此操作   
  • 请记住,只要单个像素不匹配,就会突破循环。
  •   
  • 您的最坏情况运行时将是O(wh),这在图像实际上相等时发生。
  •   

答案 1 :(得分:0)

检查图像大小是否相同。

不要忘记检查宽度和高度。

To find image file size

答案 2 :(得分:0)

Tyler是正确的,未经用户同意,您无法访问文件系统。

但是如果你想比较javascript代码可用的图片,例如使用网址或使用上传字段,你应该查看这个问题:Compare two Images in JavaScript

基本上,您将图像转换为canvas元素并使用base64值来比较两者,就像人们通过检查文档的校验和来确认文档是否“有效”一样