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

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

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

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

阅读 1.1k
评论 2018-06-11 提问
    1 个回答
    十年
    • 2.9k

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

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

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

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

    评论 赞赏
      撰写回答

      登录后参与交流、获取后续更新提醒