webui stuff

This commit is contained in:
Stian Fredrik Aune
2021-05-24 13:02:52 +02:00
parent a2e719def9
commit 38d370894e
11 changed files with 147 additions and 11962 deletions
+39
View File
@@ -0,0 +1,39 @@
// @ts-ignore
import kelvinToRgb from "kelvin-to-rgb";
import {ColorValue} from "../models/Colors";
import iro from "@jaames/iro";
export function kelvinToColorValue(rawKelvin: number): ColorValue {
const kelvin = normalizeKelvin(rawKelvin);
return kelvinTable[kelvin];
}
export function kelvinToRgbHex(rawKelvin: number): string {
const kelvin = normalizeKelvin(rawKelvin);
const c = new iro.Color();
c.kelvin = kelvin;
return c.hexString;
}
function normalizeKelvin(kelvin: number): number {
if (kelvin < 1000) {
return 1000;
} else if (kelvin > 10000) {
return 10000;
} else {
return kelvin - (kelvin % 100);
}
}
const kelvinTable: {[key: number]: ColorValue} = {};
for (let kelvin = 1000; kelvin <= 10000; kelvin += 100) {
const c = new iro.Color();
c.kelvin = kelvin;
const [h, s] = [c.hsv.h, (c.hsv.s as number) / 100];
kelvinTable[kelvin] = {h, s, kelvin};
}