WebGLRenderingContext: pixelStorei() 方法
注意:此功能在 Web Workers 中可用。
WebGLRenderingContext.pixelStorei() 方法是 WebGL API 的一部分,用於指定畫素儲存模式。
語法
js
pixelStorei(pname, param)
引數
返回值
無(undefined)。
畫素儲存引數
引數名 (對應 pname) |
描述 | 型別 | 預設值 | 允許的取值 (對應 param) |
指定於 |
|---|---|---|---|---|---|
gl.PACK_ALIGNMENT |
畫素資料在記憶體中的打包方式。 | GLint |
4 | 1, 2, 4, 8 | OpenGL ES 2.0 |
gl.UNPACK_ALIGNMENT |
畫素資料從記憶體中的解包方式。 | GLint |
4 | 1, 2, 4, 8 | OpenGL ES 2.0 |
gl.UNPACK_FLIP_Y_WEBGL |
如果為 true,則將源資料沿其垂直軸翻轉。 | GLboolean |
false | true, false | WebGL |
gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL |
將 Alpha 通道乘以其他顏色通道。 | GLboolean |
false | true, false | WebGL |
gl.UNPACK_COLORSPACE_CONVERSION_WEBGL |
預設顏色空間轉換或不進行顏色空間轉換。 | GLenum |
gl.BROWSER_DEFAULT_WEBGL |
gl.BROWSER_DEFAULT_WEBGL, gl.NONE |
WebGL |
使用 WebGL 2 上下文時,還可以使用以下值:
| 常量 | 描述 | 型別 | 預設值 | 允許的取值 (對應 param) |
指定於 |
|---|---|---|---|---|---|
gl.PACK_ROW_LENGTH |
每行畫素的數量。 | GLint |
0 | 0 到 Infinity |
OpenGL ES 3.0 |
gl.PACK_SKIP_PIXELS |
在將第一個畫素寫入記憶體之前跳過的畫素位置數量。 | GLint |
0 | 0 到 Infinity |
OpenGL ES 3.0 |
gl.PACK_SKIP_ROWS |
在將第一個畫素寫入記憶體之前跳過的畫素行數量。 | GLint |
0 | 0 到 Infinity |
OpenGL ES 3.0 |
gl.UNPACK_ROW_LENGTH |
每行畫素的數量。 | GLint |
0 | 0 到 Infinity |
OpenGL ES 3.0 |
gl.UNPACK_IMAGE_HEIGHT |
從記憶體讀取畫素資料時使用的影像高度。 | GLint |
0 | 0 到 Infinity |
OpenGL ES 3.0 |
gl.UNPACK_SKIP_PIXELS |
在從記憶體讀取第一個畫素影像之前跳過的畫素影像數量。 | GLint |
0 | 0 到 Infinity |
OpenGL ES 3.0 |
gl.UNPACK_SKIP_ROWS |
在從記憶體讀取第一個畫素之前跳過的畫素行數量。 | GLint |
0 | 0 到 Infinity |
OpenGL ES 3.0 |
gl.UNPACK_SKIP_IMAGES |
在從記憶體讀取第一個畫素影像之前跳過的畫素影像數量。 | GLint |
0 | 0 到 Infinity |
OpenGL ES 3.0 |
示例
設定畫素儲存模式會影響 WebGLRenderingContext.readPixels() 操作,以及使用 WebGLRenderingContext.texImage2D() 和 WebGLRenderingContext.texSubImage2D() 方法進行紋理解包。
js
const tex = gl.createTexture();
gl.bindTexture(gl.TEXTURE_2D, tex);
gl.pixelStorei(gl.PACK_ALIGNMENT, 4);
要檢查畫素資料打包和解包的值,您可以使用 WebGLRenderingContext.getParameter() 查詢相同的畫素儲存引數。
js
gl.getParameter(gl.PACK_ALIGNMENT);
gl.getParameter(gl.UNPACK_ALIGNMENT);
規範
| 規範 |
|---|
| WebGL 規範 # 5.14.3 |
| WebGL 規範 # PIXEL_STORAGE_PARAMETERS |
| WebGL 2.0 規範 # 3.7.2 |
瀏覽器相容性
載入中…