Flutter:将色温转换为RGB
Flutter: Convert color temperature to RGB
我正在寻找一种在 Flutter 中将 色温转换为其近似 RGB 颜色 的方法。
如果您查看 this 网站,1800
的色温等于某种橙色:
在 Flutter 中有没有方便的方法来做到这一点?我发现的网站似乎对颜色进行了硬编码。也请提供公式给我。
This blog 有多种语言的公式。下面是我到 Dart/Flutter.
的端口
Color colorTempToRGB(double colorTemp) {
final temp = colorTemp / 100;
final red = temp <= 66
? 255
: (pow(temp - 60, -0.1332047592) * 329.698727446).round().clamp(0, 255);
final green = temp <= 66
? (99.4708025861 * log(temp) - 161.1195681661).round().clamp(0, 255)
: (pow(temp - 60, -0.0755148492) * 288.1221695283).round().clamp(0, 255);
final blue = temp >= 66
? 255
: temp <= 19
? 0
: (138.5177312231 * log(temp - 10) - 305.0447927307)
.round()
.clamp(0, 255);
return Color.fromARGB(255, red, green, blue);
}
我正在寻找一种在 Flutter 中将 色温转换为其近似 RGB 颜色 的方法。
如果您查看 this 网站,1800
的色温等于某种橙色:
在 Flutter 中有没有方便的方法来做到这一点?我发现的网站似乎对颜色进行了硬编码。也请提供公式给我。
This blog 有多种语言的公式。下面是我到 Dart/Flutter.
的端口Color colorTempToRGB(double colorTemp) {
final temp = colorTemp / 100;
final red = temp <= 66
? 255
: (pow(temp - 60, -0.1332047592) * 329.698727446).round().clamp(0, 255);
final green = temp <= 66
? (99.4708025861 * log(temp) - 161.1195681661).round().clamp(0, 255)
: (pow(temp - 60, -0.0755148492) * 288.1221695283).round().clamp(0, 255);
final blue = temp >= 66
? 255
: temp <= 19
? 0
: (138.5177312231 * log(temp - 10) - 305.0447927307)
.round()
.clamp(0, 255);
return Color.fromARGB(255, red, green, blue);
}