WebGLRenderingContext:unpackColorSpace 属性
WebGLRenderingContext.unpackColorSpace
属性指定导入纹理时要转换到的颜色空间。除了默认值 (srgb
) 之外,还可以使用 display-p3
颜色空间。
纹理图像源可以是以下内容
ImageBitmap
ImageData
HTMLImageElement
HTMLCanvasElement
HTMLVideoElement
OffscreenCanvas
VideoFrame
使用 WebGLRenderingContext.texImage2D()
和 WebGLRenderingContext.texSubImage2D()
方法导入纹理,并在导入过程中将纹理转换为指定的 unpackColorSpace
颜色空间。
请注意,当 UNPACK_COLORSPACE_CONVERSION_WEBGL
像素存储参数设置为 NONE
时,这并不适用于 HTMLImageElement
。
值
此属性可以具有以下值
"srgb"
选择 sRGB 颜色空间。这是默认值。"display-p3"
选择 display-p3 颜色空间。
如果指定了无效值,则 unpackColorSpace
的值将保持不变。
示例
将 sRGB ImageData 转换为纹理中的 display-p3
js
const canvas = document.getElementById("canvas");
const gl = canvas.getContext("webgl");
gl.drawingBufferColorSpace = "display-p3";
gl.unpackColorSpace = "display-p3";
// Some sRGB ImageData
// Will be converted from sRGB to Display P3
const imageData = new ImageData(data, 32, 32);
const tex = gl.createTexture();
gl.bindTexture(gl.TEXTURE_2D, tex);
gl.texImage2D(
gl.TEXTURE_2D,
0,
gl.RGBA,
width,
height,
0,
gl.RGBA,
gl.UNSIGNED_BYTE,
imageData,
);
规范
规范 |
---|
WebGL 规范 # DOM-WebGLRenderingContext-unpackColorSpace |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。