javascript - 是否有 `WebGLRenderingContext` 的任何方法,如 `CanvasRenderingContext2D.getImageData()` ?

标签 javascript canvas webgl

假设我们可以从 CanvasRenderingContext2D 获取 ImageData

var element = document.getElementById('someCanvas');
var context = element.getContext('2d');
var imageData = context.getImageData(0, 0, width, height);

我想知道是否也可以使用 WebGLRenderingContext 来完成?

var element = document.getElementById('someCanvas');
var context = element.getContext('webgl');
/* Get image data ... */

非常感谢!

最佳答案

它的工作方式并不完全相同,但您可以使用 WebGLRenderingContext.readPixels 获取绘图缓冲区中的所有像素。 .确保在退出实际呈现像素的事件之前调用它。

var context = element.getContext('webgl');
var pixels = new Uint8Array(context.drawingBufferWidth * context.drawingBufferHeight * 4);
context.readPixels(
  0, 
  0, 
  context.drawingBufferWidth, 
  context.drawingBufferHeight, 
  context.RGBA, 
  context.UNSIGNED_BYTE, 
  pixels);

关于javascript - 是否有 `WebGLRenderingContext` 的任何方法,如 `CanvasRenderingContext2D.getImageData()` ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36756286/

相关文章:

javascript - 使用 get 请求进行多个数据库查询

javascript - 尝试将我的 js 游戏放入 html 文件中,不会使用 Canvas 区域

javascript - 我可以从 canvas 元素获取图像并在 img src 标签中使用它吗?

textures - webgl:与其他程序/着色器共享纹理

3d - 在WebGL下glMatrix尺度变换是否需要特定的顺序?

javascript - 我的 JavaScript 不会在没有警报的情况下运行

javascript - 将嵌套的 if 语句转换为更优雅的 switch?

javascript - 在webGL中用.jpg图像覆盖矩形

javascript - 我可以禁用 Safari 的平滑图像缩放吗?

javascript - 将图像加载到织物 Canvas 背景