在二进制数据中显示html5画布中的图像

Ale*_*itt 0 javascript google-app-engine python-2.7 channel-api html5-canvas

我试图通过谷歌应用程序引擎通道api从画布发送图像到另一个客户端,然后将显示相同的图像.正在接收消息但未显示图像.

在发送方:

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});
Run Code Online (Sandbox Code Playgroud)

在另一端渲染数据:

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);
Run Code Online (Sandbox Code Playgroud)

控制台一直说最后一行有一个Type错误.

rle*_*mon 5

用putImageData交换drawImage

createImageData()返回一个ImageData对象.

http://tinker.io/e3ec8

你在这里也有一个错误: for (var i=0; i<image.length; i++) {
你想要的image.data.length不是图像长度