webui stuff
This commit is contained in:
@@ -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};
|
||||
}
|
||||
Reference in New Issue
Block a user