我想通过websocket将图片流式传输到网页。数据是RGBA。如何将博客更改为图像数据?
这是我当前的代码,它不起作用而且速度很慢。有没有直接的方法将event.data分配给画布'图像数据?
void onMessage(MessageEvent event)
{
print("received!");
var imgData = canvas.getImageData(0, 0, 100, 100);
var j = 0;
for (var i=0;i<imgData.data.length;i+=4)
{
imgData.data[i+0]=event.data[j];
imgData.data[i+1]=event.data[j+1];
imgData.data[i+2]=event.data[j+2];
imgData.data[i+3]=255;
j+=3;
}
canvas.putImageData(imgData,0,0);
}
答案 0 :(得分:0)
在Firefox上,您可以使用toBlob方法。将图像数据放在temporany画布上并调用toBlob方法。概念证明示例:
var canvas = document.createElement('canvas');
canvas.width = imageData.width;
canvas.height = imageData.width;
me._dstCanvas.getContext('2d').putImageData(a.dstImgData, 0, 0);
me._dstCanvas.toBlob(function(blob) {
blob// this is yout file
}, 'image/png', 1);
有关Moz Dev的更多信息,请访问: https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob