chroma-js
Version:
JavaScript library for color conversions
40 lines (36 loc) • 1.01 kB
JavaScript
/*
* Based on implementation by Neil Bartlett
* https://github.com/neilbartlett/color-temperature
*/
const { log } = Math;
const temperature2rgb = (kelvin) => {
const temp = kelvin / 100;
let r, g, b;
if (temp < 66) {
r = 255;
g =
temp < 6
? 0
: -155.25485562709179 -
0.44596950469579133 * (g = temp - 2) +
104.49216199393888 * log(g);
b =
temp < 20
? 0
: -254.76935184120902 +
0.8274096064007395 * (b = temp - 10) +
115.67994401066147 * log(b);
} else {
r =
351.97690566805693 +
0.114206453784165 * (r = temp - 55) -
40.25366309332127 * log(r);
g =
325.4494125711974 +
0.07943456536662342 * (g = temp - 50) -
28.0852963507957 * log(g);
b = 255;
}
return [r, g, b, 1];
};
export default temperature2rgb;