colorizr
Version:
Manipulate colors like a boss
21 lines (15 loc) • 447 B
text/typescript
export function srgbGammaDecode(input: number): number {
const abs = Math.abs(input);
if (abs < 0.04045) {
return input / 12.92;
}
return (Math.sign(input) || 1) * ((abs + 0.055) / 1.055) ** 2.4;
}
export function srgbGammaEncode(input: number): number {
const abs = Math.abs(input);
const sign = input < 0 ? -1 : 1;
if (abs > 0.0031308) {
return sign * (abs ** (1 / 2.4) * 1.055 - 0.055);
}
return input * 12.92;
}