假设我们可以从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 ... */
非常感谢!
答案 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);