diff --git a/web/src/colorspace.ts b/web/src/colorspace.ts deleted file mode 100644 index 0ee968e373..0000000000 --- a/web/src/colorspace.ts +++ /dev/null @@ -1,32 +0,0 @@ -// Convert an sRGB value in [0, 255] to a linear intensity -// value in [0, 1]. -// -// https://en.wikipedia.org/wiki/SRGB#The_reverse_transformation -export function sRGB_to_linear(v: number): number { - v = v / 255; - if (v <= 0.04045) { - return v / 12.92; - } - return Math.pow((v + 0.055) / 1.055, 2.4); -} - -// Compute luminance (CIE Y stimulus) from linear intensity -// of sRGB / Rec. 709 primaries. -export function rgb_luminance(channel: [number, number, number]): number { - return 0.2126 * channel[0] + 0.7152 * channel[1] + 0.0722 * channel[2]; -} - -// Convert luminance (photometric, CIE Y) -// to lightness (perceptual, CIE L*) -// -// https://en.wikipedia.org/wiki/Lab_color_space#Forward_transformation -export function luminance_to_lightness(luminance: number): number { - let v; - if (luminance <= 216 / 24389) { - v = (841 / 108) * luminance + 4 / 29; - } else { - v = Math.pow(luminance, 1 / 3); - } - - return 116 * v - 16; -} diff --git a/web/tests/colorspace.test.js b/web/tests/colorspace.test.js deleted file mode 100644 index c4e79988e8..0000000000 --- a/web/tests/colorspace.test.js +++ /dev/null @@ -1,39 +0,0 @@ -"use strict"; - -const {strict: assert} = require("assert"); - -const {zrequire} = require("./lib/namespace"); -const {run_test} = require("./lib/test"); - -const colorspace = zrequire("colorspace"); - -run_test("sRGB_to_linear", () => { - let srgb_color = 0.0042; - let expected_value = 0.0042 / 255 / 12.92; - let actual_value = colorspace.sRGB_to_linear(srgb_color); - assert.equal(actual_value, expected_value); - - srgb_color = 255; - expected_value = 1; - actual_value = colorspace.sRGB_to_linear(srgb_color); - assert.equal(actual_value, expected_value); -}); - -run_test("rgb_luminance", () => { - const channel = [1, 1, 1]; - const expected_value = 1; - const actual_value = colorspace.rgb_luminance(channel); - assert.equal(actual_value, expected_value); -}); - -run_test("luminance_to_lightness", () => { - let luminance = 0; - let expected_value = (116 * 4) / 29 - 16; - let actual_value = colorspace.luminance_to_lightness(luminance); - assert.equal(actual_value, expected_value); - - luminance = 1; - expected_value = 100; - actual_value = colorspace.luminance_to_lightness(luminance); - assert.equal(actual_value, expected_value); -});