作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想通过 websocket 将图像流式传输到网页。数据在 RGBA 中。如何将博客转换为图像数据?
这是我当前的代码,它不起作用而且会很慢。有没有一种直接的方法可以将 event.data 分配给 Canvas 的图像数据?
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);
}
最佳答案
在 Firefox 上,您可以使用 toBlob 方法。将图像数据放在临时 Canvas 上并调用 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
关于websocket - 如何将 blob 转换为图像数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19994947/
我是一名优秀的程序员,十分优秀!