是否有任何方法适用于“WebGLRenderingContext”,如“CanvasRenderingContext2D

Is there any method for `WebGLRenderingContext` as in `CanvasRenderingContext2D.getImageData()`?

本文关键字:CanvasRenderingContext2D WebGLRenderingContext 是否 任何 方法 适用于      更新时间:2023-09-26

假设我们可以从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);
相关文章:
  • 没有找到相关文章