javascript - 如何有效地散列图像以在浏览器中进行索引搜索?

标签 javascript image

我正在编写一个 Chrome 扩展程序,用于保存网站上的图像。除了保存文件本身之外,我还想将图像转换为某种类型的哈希值。

目标是在数据库中对图像进行索引,以便我可以轻松确定图像是否重复(与大小无关,即缩略图和全尺寸图像将被视为重复)。我并不真正担心图像有细微的差异(除了大小)。

我尝试与 this library 合作,但它很大,比我想要的要慢一点,并且(表面上)不再受支持。

我还尝试了许多 phash 算法实现,但据我所知,它们都是供服务器端使用的。我正在使用 webpack,它无法捆绑我尝试过的任何库(很可能这是用户错误,我不是 webpack-pro)。

最后,我尝试了 converting the image to base64 ,但结果超过 10k 个字符,我不清楚这是否适用于不同尺寸的图像。

最佳答案

我只想在 JavaScript 中实现快速字符串哈希。将图像转换为 Base64,然后对其运行字符串哈希:

https://www.npmjs.com/package/non-crypto-hash (这些在节点和浏览器中都有效,您可以使用 browserify 将其引入)

或者您可以转换的算法: http://landman-code.blogspot.ca/2008/06/superfasthash-from-paul-hsieh.html

假设您不需要加密安全哈希,这些可能是您最快的选择。

关于javascript - 如何有效地散列图像以在浏览器中进行索引搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39461153/

相关文章:

javascript - 无法使用 JavaScript 使元素返回到其原始状态

java - 如何设置安卓锁屏图片

image - 在图像上定位 "black rectangles"- 与语言无关

Javascript onchange 不显示隐藏的 div

javascript - 部署时 Heroku 出现 "Cannot find module"错误

javascript - 切换未知数量的案例 - 默认情况略有变化?

c++ - 有效地矢量化图像 block 处理?

java - 为什么 getScaledInstance() 不起作用?

python - 如何使用opencv从图像中去除其他噪音

javascript - 在业务逻辑内多次检查模型属性