如何在获得canvas的色值后,判断是否在某个颜色区间内

我想请问,我在获得canvas的某个颜色的RGBA值后,如何和指定的颜色数组里的颜色匹配。

我想要将获取到的颜色和数组内的颜色匹配,相近的颜色替换掉获取到的颜色!

请问有什么可以可以指教的方法吗?目前不清楚该如何去匹配!不知道如何找相近值!

阅读 3.9k
1 个回答

计算距离最小的颜色即可,颜色距离的算法有很多,可参考维基百科

https://zh.wikipedia.org/wiki...

最简单的方法当然就是空间距离算法,就是下值取平方根:
(r2-r1)^2 + (g2-g1)^2 + (b2-b1)^2

但实际情况是,这个“距离“和人眼感受的“距离”并不一致,更好的算法是把RGB先转为LAB再进行计算,当然还有更好的算法,请参考上面的文档。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题