我正在编写一个 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/