<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On 3 May 2016, at 8:10 AM, Rik Cabanier <<a href="mailto:cabanier@gmail.com" class="">cabanier@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><br class=""><div class="gmail_extra"><br class=""><div class="gmail_quote">On Mon, May 2, 2016 at 2:59 PM, Dean Jackson <span dir="ltr" class=""><<a href="mailto:dino@apple.com" target="_blank" class="">dino@apple.com</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word" class=""><br class=""><div class=""><span class=""><blockquote type="cite" class=""><div class="">On 3 May 2016, at 7:04 AM, Rik Cabanier <<a href="mailto:cabanier@gmail.com" target="_blank" class="">cabanier@gmail.com</a>> wrote:</div><br class=""><div class=""><div dir="ltr" class=""><br class=""><div class="gmail_extra"><br class=""><div class="gmail_quote">On Mon, May 2, 2016 at 1:58 PM, Simon Fraser <span dir="ltr" class=""><<a href="mailto:simon.fraser@apple.com" target="_blank" class="">simon.fraser@apple.com</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word" class=""><div class=""><span class=""><blockquote type="cite" class=""><div class="">On May 2, 2016, at 1:45 PM, Rik Cabanier <<a href="mailto:cabanier@gmail.com" target="_blank" class="">cabanier@gmail.com</a>> wrote:</div><br class=""><div class=""><div dir="ltr" class="">All,<div class=""><br class=""></div><div class="">with the release of DCI-P3 screen, WebKit began supporting the display of high gamut images.</div><div class="">Specifically, if you have an image with a DCI-P3 profile, its pixels render untouched on the new displays.</div><div class=""><br class=""></div><div class="">However, if you try do do any sort of canvas manipulation, you will see that the colors are being compressed to sRGB and you will lose the depth of the color.</div><div class=""><br class=""></div><div class="">Was it an oversight to always create the canvas imagebuffer in sRGB? [1]<br class=""></div></div></div></blockquote><div class=""><br class=""></div></span>No, this was a deliberate choice. We can't change author expectations for what getImageData() return.</div></div></blockquote><div class=""><br class=""></div><div class="">Now we see different visual output which is also not what an author expects :-(<br class=""></div></div></div></div></div></blockquote><div class=""><br class=""></div></span><div class="">Since there is no way to create a canvas element with pixel data that is interpreted to be in anything other than sRGB, this behaviour seems expected to me. I'm not sure what else could happen? We couldn't magically make all the canvas elements in the page use P3. If we did that, they wouldn't match the CSS content.</div></div></div></blockquote><div class=""><br class=""></div><div class="">I don't see why that would be. CSS colors and tagged/untagged images would be color corrected while being drawn just like it happens in HTML.</div><div class="">get/putImageData would of course be uncorrected as it works on raw pixels.</div></div></div></div></div></blockquote><div><br class=""></div><div>That's the problem. If we did what you suggest a paint with rgba(255, 0, 0, 1) would not be the same as putting [255, 0, 0, 255] into the buffer via ImageData, and no page in the world would expect that. And there would also be no way to paint into the canvas to match colours outside of sRGB.</div><div><br class=""></div><div>I think we did the right thing for now. The complete solutions are coming.</div><div><br class=""></div><div>Dean</div><div><br class=""></div><br class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class="gmail_extra"><div class="gmail_quote"><div class=""> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word" class=""><div class=""><div class="">The fix is coming: a way to tag the colorspace of the canvas element.</div></div></div></blockquote><div class=""><br class=""></div><div class="">That's great! Do you have an idea how far off that proposal is?</div><div class=""> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word" class=""><div class=""><blockquote type="cite" class=""><div class=""><span class=""><div dir="ltr" class=""><div class="gmail_extra"><div class="gmail_quote"><div class="">Can you elaborate what is unexpected with getImageData? Is it that css "red" no longer returns 100% red pixels?</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word" class=""><div class=""><span class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class="">If this is as-designed, how can we work around this limitation?</div></div></div></blockquote><div class=""><br class=""></div></span>With possible future enhancements to the canvas spec that allow authors to request backing store with a different format and/or color profile.<span class=""><br class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class=""><br class=""></div><div class="">PS</div><div class="">I asked the same question on WhatWG. [2]</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">1: <a href="https://github.com/WebKit/webkit/blob/112c663463807e8676765cb7a006d415c372f447/Source/WebCore/platform/graphics/ImageBuffer.h#L73" style="font-size:12.8px" target="_blank" class="">https://github.com/WebKit/webkit/blob/112c663463807e8676765cb7a006d415c372f447/Source/WebCore/platform/graphics/ImageBuffer.h#L73</a></div><div class="">2: <a href="https://lists.w3.org/Archives/Public/public-whatwg-archive/2016Apr/0036.html" target="_blank" class="">https://lists.w3.org/Archives/Public/public-whatwg-archive/2016Apr/0036.html</a></div></div></div></blockquote><br class=""></span></div><span class=""><font color="#888888" class=""><div class="">Simon</div><div class=""><br class=""></div><br class=""></font></span></div></blockquote></div><br class=""></div></div></span>
_______________________________________________<br class="">webkit-dev mailing list<br class=""><a href="mailto:webkit-dev@lists.webkit.org" target="_blank" class="">webkit-dev@lists.webkit.org</a><br class=""><a href="https://lists.webkit.org/mailman/listinfo/webkit-dev" target="_blank" class="">https://lists.webkit.org/mailman/listinfo/webkit-dev</a><br class=""></div></blockquote></div><br class=""></div></blockquote></div><br class=""></div></div>
</div></blockquote></div><br class=""></body></html>