我正在尝试通过 Google 应用程序引擎 channel API 将 Canvas 中的图像发送到另一个客户端,然后该客户端将显示相同的图像。正在接收消息,但未显示图像。
在发送端:
var image = context.getImageData(0, 0, imageCanvas.width, imageCanvas.height);
var buffer = new ArrayBuffer(image.data.length);
var bytes = new Uint8Array(buffer);
for (var i=0; i<bytes.length; i++) {
bytes[i] = image.data[i];
}
sendMessage({image: buffer});
在另一端渲染数据:
var bytes = new Uint8Array(buffer.size);
var image = context.createImageData(imageCanvas.width, imageCanvas.height);
for (var i=0; i<image.length; i++) {
image.data[i] = bytes[i];
}
context.drawImage(image, 0, 0);
控制台一直提示最后一行有类型错误。
最佳答案
将drawImage与putImageData交换
createImageData() 返回一个 ImageData 对象。
你这里也有一个错误:
for (var i=0; i<image.length; i++) {
你想要image.data.length
不是图像长度
关于javascript - 从二进制数据在 html5 canvas 中显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17879641/