色温转颜色算法

根据色温值转换为对应的颜色

// An highlighted block
Color _getColor(int temperature){
    if(temperature<1000){temperature = 1000;}
    if(temperature>40000){temperature = 40000;}
    double tempera = temperature / 100;
    double red = 0;
    if(temperature <= 66){
      red = 255;
    }else{
      red = tempera - 60;
      red = 329.698727446.toInt() * pow(red,-0.1332047592.toInt());
      if(red < 0){red = 0;}
      if(red > 255){red = 255;}
    }
    double green = 0;
    if(tempera <= 66){
      green = tempera;
      green = 99.4708025861.toInt() * log(green) - 161.1195681661.toDouble();
      if(green < 0){green = 0;}
      if(green > 255){green = 255;}
    }else{
      green = tempera - 60;
      green = 288.1221695283.toInt()  * pow(green,-0.0755148492.toDouble());
      if(green < 0){green = 0;}
      if(green > 255){green = 255;}
    }
    double blue = 0;
    if(tempera >= 66){
      blue = 255;
    }else{
      if(tempera <= 19){
        blue = 0;
      }else{
        blue = tempera - 10;
        blue = 138.5177312231.toInt() * log(blue) - 305.0447927307.toInt();
        if(blue < 0 ){blue = 0;}
        if(blue > 255){blue = 255;}
      }
    }
    return Color.fromRGBO(red.toInt(), green.toInt(), blue.toInt(),1);
  }
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐