【问题标题】:What is "colorspace" in imagedata?什么是图像数据中的“色彩空间”?
【发布时间】:2017-09-20 19:23:12
【问题描述】:

需要进行一些像素操作,但图像数据已更改。现在它有一个“色彩空间”属性。 这是什么,如何正常使用?

只需在 chrome 中获取一个 imagedata 对象即可重现。

【问题讨论】:

    标签: javascript html5-canvas getimagedata putimagedata


    【解决方案1】:

    这来自this proposal,用于在画布中实现色彩空间管理。

    目前,画布卡在legacy-srgb 8 位深度。有些监视器无法处理这种低级别的信息。

    这仍然是一个提议,但当前提议的设置 2DContext 的颜色空间的语法是 ctx.getContext('2d', {colorSpace: 'color-space', pixelFormat: 'pixelFormat', linearPixelMath: boolean});

    目前还没有人实现它,但是铬和铬正在这样做。
    他们当前的实现只在 ImageData 对象上公开了一个 getter colorSpace 属性,在 Context2D 对象上公开了一个 getContextAttributes 方法,但是还没有办法为我们设置它(也许有一些启动标志,但我没有'找不到它)。

    注意:您需要在chrome://flags 中将Experimental canvas features 标志设置为true 才能访问这些属性。

    但无论如何,这个属性绝不应该改变您的代码。 ImageData的所有默认参数还是一样的。

    【讨论】:

    • 这在 Chrome 中是可能的(很快在 Firefox 和 Safari 中)。请参阅this answer