Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 查找图像的最常见颜色_Javascript_Html_Canvas - Fatal编程技术网

Javascript 查找图像的最常见颜色

Javascript 查找图像的最常见颜色,javascript,html,canvas,Javascript,Html,Canvas,我有一个页面上有200x200图像的产品。我的第一次尝试是获取每个像素的数据(嵌套用于循环,一个用于x,一个用于y),然后将rgb转换为十六进制,并将它们存储在数组中,然后获取最频繁的一个。此脚本每次需要在每页上运行96个项目 目前,它创建一个画布,并将产品图像放入该画布中,然后执行上述操作 是否有某种平均算法可以加快计算速度?是的 Lokesh Dhakar创建了一个名为“颜色小偷”的脚本,用于计算图像的主色。它使用改进的中值切割量化算法(MCCQ)快速聚类颜色并确定主色调(甚至整个调色板)

我有一个页面上有200x200图像的产品。我的第一次尝试是获取每个像素的数据(嵌套用于循环,一个用于x,一个用于y),然后将rgb转换为十六进制,并将它们存储在数组中,然后获取最频繁的一个。此脚本每次需要在每页上运行96个项目

目前,它创建一个画布,并将产品图像放入该画布中,然后执行上述操作

是否有某种平均算法可以加快计算速度?

是的

Lokesh Dhakar创建了一个名为“颜色小偷”的脚本,用于计算图像的主色。它使用改进的中值切割量化算法(MCCQ)快速聚类颜色并确定主色调(甚至整个调色板)


这里有一个演示:这个脚本可以在github上找到:

我知道它听起来很容易使用库和所有东西,但我发现了一个更简单的解决方案,几乎可以满足这个目的。 应用模糊过滤器时,它所做的是获取像素强度的平均值。因此,如果你对图像应用模糊,像

filter:blur(30px);

或者任何适合的,它平均了整个图像,并为您提供了一个坚实的背景色,大部分时间是图像的突出颜色

这样做要简单得多,而且应该几乎总是有效的。只要尝试修补模糊量

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


希望对您有所帮助:)

您当前的算法是什么?它在内部使用了
canvas.getImageData()
,因此您可能会遇到“污染画布”安全警告问题。
filter:blur(50px);