首页 > 解决方案 > 如何近似颜色

问题描述

我们有一个像这样的列表https://htmlcolorcodes.com/color-names/来命名颜色。我想要一个可以游戏一些随机十六进制颜色值并将其近似为其中一种命名颜色的函数。我怎样才能做到这一点?

标签: fluttercolorshex

解决方案


当我正确理解你时,你想要一个函数:

  1. 生成随机颜色

  2. 在链表中查找最接近的颜色

这是对的吗?如果是这样,我建议使用 RGB 值,然后我会创建自己的指标来测量两种颜色之间的距离,例如:

int distance(Color a, Color b) {
    int redDistance = math.abs( a.red - b.red );
    int greenDistance = math.abs( a.green - b.green );
    int blueDistance = math.abs( a.blue - b.blue );

    return redDistance + greenDistance + blueDistance;
}

之后,我将遍历所有链接的颜色并找到随机生成的“最近”颜色。


推荐阅读