如何从颜色名称获取RGB值?

问题描述

我需要根据用户给定的数据/颜色/秒获取颜色的rgb值。目前,我有一张地图,其中有一些颜色名称作为键,而rgb值作为值。但是使用rgb值,可以有大约255 255 255种颜色。由于我的程序中没有所有这些颜色的映射。我正在寻找更好的解决方案,以允许用户输入至少一半的颜色。我已经阅读了一些CSS框架,以了解我的问题。但是我什么都不知道。

这是我当前正在使用的代码

std::unordered_map<std::string,sim_vector_t> COLOR_OPTION{
            {"red",{1,0}},{"green",{0,1,{"blue",1}},{"yellow",10}},{"white",{"orange",0.5,0}}};

sim_vector_t LightControlModule::ColorValueExtraction(const std::string& colorTransition)
{
    auto ptr = COLOR_OPTION.find(colorTransition);
    if (ptr != COLOR_OPTION.end())
    {
        return ptr->second;
    }
    else
    {
        ROS_WARN(" Given state transition is not defined");
        return {0,0};
    }
}

目前,上面的代码仅适用于有限数量的颜色,正如我上面解释的那样,我需要一种数据库类的东西才能拥有所有rgb有效颜色。

  1. 有没有办法使之成为可能?
  2. 有没有可以在我的代码中集成或使用的开源库?
  3. 是否可以将CSS动画框架集成到我的c ++代码中,以实现上述所需?

谢谢。

解决方法

查看此package

那里有1566种颜色

此插件中颜色的原始source