Re: [csswg-drafts] [css-color-4] Disagreements over gamut mapping (#7610)

A data point with respect to 2D canvas (which has supported display-p3 ImageData for a while now, on more than one browser).

Consider the following code which writes color(display-p3 1 0 0) to an sRGB canvas and reads it back.
```
var element = document.getElementById("MyCanvas");
var context = element.getContext('2d', {colorSpace:'srgb'});
var put_image_data = new ImageData(1, 1, {colorSpace:'display-p3'});
  put_image_data.data[0] = 255;
  put_image_data.data[1] = 0;
  put_image_data.data[2] = 0;
  put_image_data.data[3] = 255;
context.putImageData(put_image_data, 0, 0);
var get_image_data = context.getImageData(0, 0, 1, 1);
console.log(get_image_data);
```
This code returns the color [255, 0, 0, 255] (the clipped, not-gamut-mapped value) in all browsers that support ImageDataSettings. In all browsers that support color level 4 syntax, if you replace the `putImageData` with
```
context.fillStyle = 'color(display-p3 1 0 0)';
context.fillRect(0, 0, 1, 1);
```
then you still get the same (clipped, not-gamut-mapped) result.

When I was writing the spec change for WCG canvas, I was definitely intending "relative colorimetric intent" to mean "clipping" (although I now see that there are various definitions of various vagueness for this).

I'm pretty sure there are WPT tests that enforce this behavior, too (with inputs that are images, too).

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


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

Received on Friday, 19 August 2022 22:10:16 UTC