Ich habe zwei Canvas, und ich möchte den Inhalt von canvas1 übergeben, serialisieren Sie es zu einem ArrayBuffer, und laden Sie es dann in canvas2. In Zukunft werde ich den Inhalt von canvas1 an den Server senden, ihn verarbeiten und an canvas2 zurücksenden, aber im Moment möchte ich ihn nur serialisieren und deserialisieren.Canvas-Inhalt in ArrayBuffer serialisieren und erneut deserialisieren
fand ich diese Art und Weise der Leinwand Informationen in Bytes des Erhaltens:
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];
}
Und fand auch auf diese Weise von Set der Informationen zu einem Image
Objekt:
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;
Aber leider funktioniert es nicht scheinen zu arbeiten.
Welches wäre der richtige Weg?
Danke.
Funktioniert nicht im IE, da IE immer noch CanvasPixelArray anstelle von Uint8ClampedArray verwendet (CanvasPixelArray's imageData.data hat keinen .buffer). – markE
@markE True, aber in jedem anderen Browser ...(wie immer) :) – K3N
Das verflixte IE! In letzter Zeit ist es jedoch viel besser geworden. :) – markE