[Bug 12444] Canvas rendering should be done in linear color space (gamma 1) and the result displayed in sRGB color space (approximately gamma 2.2)

http://www.w3.org/Bugs/Public/show_bug.cgi?id=12444

--- Comment #2 from Hugues De Keyzer <w3c@hugues.info> 2011-04-08 17:45:57 UTC ---
(In reply to comment #1)
> Please see http://lists.w3.org/Archives/Public/public-html/2010Mar/0144.html
> for a discussion on HTML5 and color management. 
> Also,
> http://lists.w3.org/Archives/Public/public-canvas-api/2009OctDec/0001.html for
> a discussion on color management and drawing images to canvas.

Hi,

Thanks for your reply.

Please note that the subject explained here indeed relates to color management,
but it also differs highly from what color management usually implies. As far
as I know, the goal of color management is to precisely define colors and
ensure that colors are correctly interpreted, displayed and transfered from one
device to the other. It will define how to convert from one color profile to
another, but doesn’t define how colors must be produced or interpreted as part
of rendering computations. This is not only about interpreting and displaying
colors, but more importantly, about how to correctly create them.

The subject of using a linear space for rendering is rather new (less than 10
years), is relatively hard to understand well, and is spreading slowly because
of this. Once it is understood, it becomes obvious that this is clearly the way
to go. It is now relatively well known and used by the film industry, and
little by little also by the video game industry.

> WRT "and the result displayed in sRGB color space (approximately gamma 2.2)"
> from the bug title:
> 
> Based on data we collected some time ago, sRGB set as the display profile on
> ~70% of Windows PCs; the other 30% have a (non-sRGB) monitor-appropriate
> profile assigned via Windows Update (most common) or the user calibration (less
> common)

The title should have been more correctly stated as “… and the result output in
sRGB color space…”. sRGB being the standard color space of the Internet, the
resulting image should use the same color space as other colors on the page,
like those used in CSS. If the computer display is using another color profile,
the colors should be converted to that profile for display, like the other
colors of the page (possibly in one conversion from linear to that color
space).

> Wrt
> http://www.w3.org/TR/html5/the-canvas-element.html#color-spaces-and-color-correction
> It would be more useful to define a working color space for canvas elements to
> clarify canvas element color management.

What do you mean by “working color space”? If it is the color space in which
the pixels are stored internally, I would advise either gamma-encoded sRGB in
8-bit or linear color space in floating-point (with the same primaries as sRGB,
but with a gamma of 1). In either case, all rendering operations should be done
in linear space, preferably in floating-point.

-- 
Configure bugmail: http://www.w3.org/Bugs/Public/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.

Received on Friday, 8 April 2011 17:46:01 UTC