Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is "colorspace" in imagedata?

Needed to do some pixel manipulation, but ImageData has changed. Now it has a colorSpace property.

What is this, and how do I use it as normal?

Just get an ImageData object in Chrome to reproduce.

like image 877
Kriso Avatar asked Jan 04 '23 03:01

Kriso


1 Answers

This comes from this proposal to implement color-space management in canvas.

Currently, canvas is stuck with legacy-srgb 8 bit depth. Some monitor can't handle this low level of information.

This is still a proposal, but the currently proposed syntax to set the colorSpace of a 2DContext would be ctx.getContext('2d', {colorSpace: 'color-space', pixelFormat: 'pixelFormat', linearPixelMath: boolean});

Currently, no one has implemented it yet, but chromium and chrome are in the process of doing so.
Their current implementation only exposes a getter colorSpace property on ImageData objects, and a getContextAttributes method on the Context2D object, but there is not yet a way to set it for us (maybe there is with some startup flag, but I didn't find it).

Note: You need to set the Experimental canvas features flag to true in chrome://flags to get access to these properties.

But anyway, this property should in no way alter your code. All the default parameters of the ImageData are still the same.

like image 54
Kaiido Avatar answered Jan 14 '23 12:01

Kaiido