色温转颜色算法
根据色温值转换为对应的颜色
// 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);
}