如何将blob转换为imagedata?

时间:2013-11-15 06:35:16

标签: websocket blob dart

我想通过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);

   }

1 个答案:

答案 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