Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.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_Ecmascript 6 - Fatal编程技术网

如何在不使用画布的情况下计算JavaScript中上传图像的平均色调

如何在不使用画布的情况下计算JavaScript中上传图像的平均色调,javascript,ecmascript-6,Javascript,Ecmascript 6,好的,我已经在很多地方搜索了这个答案,我最后一个要问的地方是在S.O,因为我知道这个问题可能会被屏蔽。但我真的想知道JavaScript中是否有任何第三方库,我可以在不使用画布的情况下计算上传图像的平均色调。如果没有库,JS中是否有任何方法或算法可以找出图像的平均色调?我浏览了一些库,如Colorify.js,但没有得到所需的解决方案。还有一些其他语言的库 检查@Umriyaev的解决方案 将RGB值转换为范围0-1,这可以通过将该值除以255获得8位颜色深度(r、g、b-为给定值): R=R/

好的,我已经在很多地方搜索了这个答案,我最后一个要问的地方是在S.O,因为我知道这个问题可能会被屏蔽。但我真的想知道JavaScript中是否有任何第三方库,我可以在不使用画布的情况下计算上传图像的平均色调。如果没有库,JS中是否有任何方法或算法可以找出图像的平均色调?我浏览了一些库,如Colorify.js,但没有得到所需的解决方案。还有一些其他语言的库

检查@Umriyaev的解决方案

  • 将RGB值转换为范围0-1,这可以通过将该值除以255获得8位颜色深度(r、g、b-为给定值):
    
    R=R/255=0.09
    G=G/255=0.38
    B=B/255=0.46

  • 求R、G和B的最小值和最大值

  • 取决于RGB颜色通道的最大值。三个不同的公式是:
    
    如果红色为最大值,则色调=(G-B)/(最大-最小值)
    如果绿色为最大值,则色调=2.0+(B-R)/(最大-最小值)
    如果蓝色为最大值,则色调=4.0+(R-G)/(最大-最小)

  • 需要将得到的色调值乘以60,才能将其转换为颜色圆上的度数。如果色调变为负值,则需要添加360度,因为圆有360度


    以下是。

    软件建议与您怀疑的stackoverflow主题无关,因为它们会吸引垃圾邮件。你可能想尝试其他地方,比如reddit。当你说“javascript”时,你是指“在网络浏览器中”吗?正在通过AJAX将图像数据发送到服务器(将计算平均色调)一个选项?在将图像发送到服务器之前,先在浏览器中找到它。如何首先从图像中获取所有RGB?您可以使用画布轻松地做您想做的事情,但由于您反对,您可以使用Colorify.js获取图像的渐变/主色,并使用该数据来计算平均色调,如上文所述。它需要多精确?我用这个答案来寻求更多帮助