2016-04-20 47 views
2

假設我們可以從CanvasRenderingContext2D得到ImageData有沒有像`CanvasRenderingContext2D.getImageData()`中的`WebGLRenderingContext`方法?

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

非常感謝!

回答

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); 
+1

您不需要保存繪圖緩衝區。您只需確保在退出渲染像素的事件之前調用readPixels。 – gman

+0

@gman我的錯誤。我很久以前就讀過這個地方。編輯。 –

+1

工作得很好,謝謝! –

相關問題