在`CanvasRenderingContext2D.getImageData()`中是否存在`WebGLRenderingContext`的方法?

时间:2016-04-20 22:23:49

标签: javascript canvas webgl

假设我们可以从ImageData获得CanvasRenderingContext2D

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 ... */

非常感谢!

1 个答案:

答案 0 :(得分:2)

它的工作原理完全相同,但您可以使用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);