From da04a92729ddf616a1cd4d0bf7f77134c1b6e017 Mon Sep 17 00:00:00 2001 From: Lloyd Kupchanko Date: Tue, 13 Feb 2024 19:13:37 -0700 Subject: [PATCH] Add missing formats to color spaces Some color spaces couldn't be parsed because they didn't have any formats. --- src/spaces/a98rgb-linear.js | 7 ++++++- src/spaces/p3-linear.js | 7 ++++++- src/spaces/prophoto-linear.js | 7 ++++++- src/spaces/xyz-abs-d65.js | 6 ++++++ test/parse.js | 33 +++++++++++++++++++++++++++++++++ 5 files changed, 57 insertions(+), 3 deletions(-) diff --git a/src/spaces/a98rgb-linear.js b/src/spaces/a98rgb-linear.js index 8eacd51dc..906786c46 100644 --- a/src/spaces/a98rgb-linear.js +++ b/src/spaces/a98rgb-linear.js @@ -23,5 +23,10 @@ export default new RGBColorSpace({ name: "Linear AdobeĀ® 98 RGB compatible", white: "D65", toXYZ_M, - fromXYZ_M + fromXYZ_M, + formats: { + color: { + id: "--a98rgb-linear" + } + } }); diff --git a/src/spaces/p3-linear.js b/src/spaces/p3-linear.js index da3667e60..0457819e3 100644 --- a/src/spaces/p3-linear.js +++ b/src/spaces/p3-linear.js @@ -17,5 +17,10 @@ export default new RGBColorSpace({ name: "Linear P3", white: "D65", toXYZ_M, - fromXYZ_M + fromXYZ_M, + formats: { + color: { + id: "--p3-linear" + } + } }); diff --git a/src/spaces/prophoto-linear.js b/src/spaces/prophoto-linear.js index 35db73ba2..a7fea925b 100644 --- a/src/spaces/prophoto-linear.js +++ b/src/spaces/prophoto-linear.js @@ -23,5 +23,10 @@ export default new RGBColorSpace({ white: "D50", base: XYZ_D50, toXYZ_M, - fromXYZ_M + fromXYZ_M, + formats: { + color: { + id: "--prophoto-linear" + } + } }); diff --git a/src/spaces/xyz-abs-d65.js b/src/spaces/xyz-abs-d65.js index 73c93c867..812e76726 100644 --- a/src/spaces/xyz-abs-d65.js +++ b/src/spaces/xyz-abs-d65.js @@ -35,5 +35,11 @@ export default new ColorSpace({ toBase (AbsXYZ) { // Convert to media-white relative XYZ return AbsXYZ.map(v => Math.max(v / Yw, 0)); + }, + + formats: { + color: { + id: "--xyz-abs-d65" + } } }); diff --git a/test/parse.js b/test/parse.js index 84310ee02..4f6b26d9c 100644 --- a/test/parse.js +++ b/test/parse.js @@ -324,6 +324,39 @@ const tests = { args: "color(--hsv 25deg 50% 75)", expect: '{"spaceId":"hsv","coords":[25,50,75],"alpha":1}' }, + { + args: "color(--a98rgb-linear 0 1 .5)", + expect: '{"spaceId":"a98rgb-linear","coords":[0,1,0.5],"alpha":1}' + }, + { + args: "color(--a98rgb-linear 0 100% 50%)", + expect: '{"spaceId":"a98rgb-linear","coords":[0,1,0.5],"alpha":1}' + }, + { + args: "color(--p3-linear 0 1 .5)", + expect: '{"spaceId":"p3-linear","coords":[0,1,0.5],"alpha":1}' + }, + { + args: "color(--p3-linear 0% 100% 50%)", + expect: '{"spaceId":"p3-linear","coords":[0,1,0.5],"alpha":1}' + }, + { + args: "color(--prophoto-linear 0 1 .5)", + expect: '{"spaceId":"prophoto-linear","coords":[0,1,0.5],"alpha":1}' + }, + { + args: "color(--prophoto-linear 0 100% 50%)", + expect: '{"spaceId":"prophoto-linear","coords":[0,1,0.5],"alpha":1}' + }, + { + args: "color(--xyz-abs-d65 0 1 .5)", + expect: '{"spaceId":"xyz-abs-d65","coords":[0,1,0.5],"alpha":1}' + }, + { + args: "color(--xyz-abs-d65 0 100% 50%)", + expect: '{"spaceId":"xyz-abs-d65","coords":[0,1,0.5],"alpha":1}' + }, + { name: "With transparency", args: "color(display-p3 0 1 0 / .5)",