寻找图片中最常见的颜色

13
我在页面上有一堆200x200像素的产品图片。我的第一次尝试是获取每个像素的数据(嵌套循环,一个用于x,一个用于y),然后将RGB转换为十六进制,并将它们存储在数组中,然后获取最常见的颜色。这个脚本需要一次处理96个项目。
目前,它创建了一个画布并将产品图像放入该画布,然后执行上述操作。
是否有某种平均算法可以使此过程更快?

1
你目前的算法是什么? - mpm
2个回答

19

1
它在内部使用 canvas.getImageData(),因此您可能会遇到“污染画布”安全警告问题。 - tigrou

3

我知道使用库等工具听起来很容易,但我发现一种更简单的解决方案,基本上可以达到相同的效果。 当你应用模糊滤镜时,它会取像素强度的平均值。因此,如果你对像素值非常高的图像应用模糊,则会产生模糊效果。

filter:blur(30px);

or

filter:blur(50px);

或者适合任何东西,它平均化整个图像并为您提供一个坚实的背景颜色,这通常是图像中最突出的颜色。

这样做要简单得多,而且几乎总是有效的。只需尝试调整模糊量。

还要记得将overflow-y设置为隐藏,因为高模糊会导致图像外部出现白色填充。隐藏溢出将解决此问题。

希望能帮到您 :)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接