语言:js
颜色量化算法:中位切分法
简介
1.获取图像的像素点数据,getImageData,得到的数据每四位分别代表一个rgba的值,这里可以把透明的像素点去掉即a=0的像素点,也可以把范围设置大一点。按每四位存到一个数组里头,接下来就是对数组进行处理。
2.中位切分算法首先把所有像素映射到RGB空间,我们以R,G,B中最长的边构造一个立方体,并且以这条边从中间切割,可以分别得到两个包含相同像素点的长方体,再以长方体的最长边进行中位切割,如此反复下去,满足条件时停止切割,比如颜色的极值小于50停止,或者长方体少于100个像素点时停止,此时,我们得到了满足条件的长方体,把像素点的平均值作为了此长方体的代表颜色。
完整代码
getcolor
效果展示
![ab6f12a7d9973468ace9b9f0a435dd9e.png](https://img-blog.csdnimg.cn/img_convert/ab6f12a7d9973468ace9b9f0a435dd9e.png)
参考资料
图像颜色提取
https://segmentfault.com/a/1190000009832996