2016-11-16 50 views
2

我想讀取並處理以幀爲單位呈現的像素數據。 我試過下面aframe:如何從畫布獲取像素

var canvas = document.querySelector('canvas'), 
params = { 
    preserveDrawingBuffer: true, 
}, 
gl = canvas.getContext('experimental-webgl', params); 
var pixels = new Uint8Array(canvas.width * canvas.height * 4); 
gl.readPixels(
    0, 
    0, 
    canvas.width, 
    canvas.height, 
    WebGLRenderingContext.RGBA, 
    WebGLRenderingContext.UNSIGNED_BYTE, 
    pixels 
    ); 

的代碼,但像素陣列留下的0,0,0,0 我如何讀取在畫布上的像素數據? 我會很感激,如果你能回答這個問題

+0

'0,0,0,0'左邊你是什麼意思?你爲什麼要處理四維空間? –

+0

也許這可以幫助 - http://stackoverflow.com/questions/17981163/webgl-read-pixels-from-floating-point-render-target –

+1

當然它是'0,0,0,0'。你創建了一個新的畫布,並沒有渲染任何東西。它開始和'0,0,0,0'。問題是什麼? – gman

回答

1

the demo you posted,找到並把一個斷點上這行:

_gl = _context || _canvas.getContext('webgl', attributes) 

看看attributes,這是一個選擇對象,而其中其他設置包含此選項:

preserveDrawingBuffer: false 

雖然你原來的職位說明你手動設置這個選項true,你的選擇沒有經過帶入您發佈的演示。如果您可以使此選項生效,您應該能夠讀回像素。