javascript/gwt:将Uint8Array或ArrayBuffer转换为ImageData元素

Eri*_*pir 9 javascript gwt html5

我想采用ArrayBuffer或Uint8Array元素并将它们转换为ImageData元素,最终转换为Canvas元素.

可能吗?

rzy*_*mek 5

在纯 javascript 中它会是这样的:

var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");    
var imgData = ctx.createImageData(100,100);

var buffer = new ArrayBuffer(4*100*100);
var ubuf = new Uint8Array(buffer);
for (var i=0;i < ubuf.length; i+=4) {
    imgData.data[i]   = ubuf[i];   //red
    imgData.data[i+1] = ubuf[i+1]; //green
    imgData.data[i+2] = ubuf[i+2]; //blue
    imgData.data[i+3] = ubuf[i+3]; //alpha
}

ctx.putImageData(imgData,0,0);
Run Code Online (Sandbox Code Playgroud)

要在 GWT 中执行此操作,您需要将其包装在JSNI 方法中