Re: [csswg-drafts] [css-color-4] Channel clipping breaks author expectations, especially when using 'perceptually uniform' spaces (#9449)

> Quoting from [ICC.1:2022](https://www.color.org/specification/ICC.1-2022-05.pdf) pp. viii-ix
> Also from page 11:

Yes, those are he definitions, but I was speaking at what is delivered within the profile.

In "Table 25 — Profile type/profile tag and defined rendering intents", the A2B0 tag is the "Device to PCS: perceptual". It specifies an unambiguous mapping from pixel values to the profile connection space (PCS), which is XYZD50 (or Lab). When displaying the image, first the image is mapped to the PCS, and then it is mapped to the output color space. Any two colors that map to the same value in the PCS (no matter where they came from) will appear the same.

So if I create a highly unusual ICC profile where the A2B0 tag says that pixel value `(1,2,3)` maps to XYZD50 value `(0.385, 0.717, 0.097)`, then this pixel will exactly match the `color(srgb 0 1 0)`, because they have the same value in XYZD50 space.

I'll have to write up an example profile to verify this, but I'm fairly certain that all browsers prioritize A2B0 (perceptual mapping) above A2B1 (relative mapping). Here's [Chromium's code](https://source.chromium.org/chromium/chromium/src/+/main:third_party/skia/modules/skcms/src/skcms_public.h;l=246;drc=9106e374e08d4d26f3afc3568d75a7ddbf821b4d) for this, and I think we tried to match WebKit's behavior. I will have to cook up a profile to verify this.

-- 
GitHub Notification of comment by ccameron-chromium
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/9449#issuecomment-2023378798 using your GitHub account


-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config

Received on Wednesday, 27 March 2024 17:31:35 UTC