[tbb-dev] Canvas Breakage Ideas
David Fifield
david at bamsoftware.com
Tue Jun 30 18:45:33 UTC 2020
On Tue, Jun 30, 2020 at 12:42:57PM -0600, David Fifield wrote:
> I was wondering whether color management affects canvas rendering. Like,
> does `rgb(100, 120, 140)` always represent the same sRGB-encoded value
> when written to a PNG, or could it depend on monitor and OS color
> management settings?
>
> What about the new wide-gamut colors available in CSS? Can those be used
> in canvas? What happens when they are written to a PNG? If the writing
> process maps them back into sRGB space, is that process deterministic?
> https://lea.verou.me/2020/04/lch-colors-in-css-what-why-and-how/
> https://graphicdon.com/2020/05/27/the-expanding-gamut-of-color-on-the-web/
Sorry, just found one more relevant link.
https://webkit.org/blog/6682/improving-color-on-the-web/
# Wide-gamut colors in HTML
While CSS handles most of the presentation of an HTML document,
there is still one important area which is outside its scope:
the `canvas` element. Both 2D and WebGL canvases assume they
operate within the sRGB color space. This means that even on
wide-gamut displays, you won’t be able to create a canvas that
exercises the full range of color.
The proposed solution is to add an optional flag to the
`getContext` function, specifying the color space the canvas
should be color matched to. For example:
```
// NOTE: Proposed syntax. Not yet implemented.
canvas.getContext("2d", { colorSpace: "p3" });
```
More information about the tbb-dev
mailing list