2 つのキャンバスがあり、canvas1 のコンテンツを渡し、それを ArrayBuffer にシリアル化してから、canvas2 にロードしたいと考えています。将来的には、canvas1 のコンテンツをサーバーに送信して処理し、canvas2 に返す予定ですが、今はシリアライズとデシリアライズを行いたいだけです。
キャンバス情報をバイト単位で取得するこの方法を見つけました:
var img1 = context.getImageData(0, 0, 400, 320);
var binary = new Uint8Array(img1.data.length);
for (var i = 0; i < img1.data.length; i++) {
binary[i] = img1.data[i];
}
Image
また、情報をオブジェクトに設定する次の方法も見つかりました。
var blob = new Blob( [binary], { type: "image/png" } );
var urlCreator = window.URL || window.webkitURL;
var imageUrl = urlCreator.createObjectURL( blob );
var img = new Image();
img.src = imageUrl;
しかし、残念ながらそれはうまくいかないようです。
これを行う正しい方法はどれですか?