Erstellung von Bild aus Array in javascript und Html5
Hier ist mein code. Ich erstellte Bilddaten 2D-array in javascript. Nachdem ich alle Pixel in diesem array möchte ich image erstellen und diese Werte in das Bild.
var imageData = new Array(width);
var image = new Image;
for (var i = 0; i < width; i++) {
imageData[i] = new Array(height);
}
image.src = imageData; //Here is the problem. I want to do that.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Um ein Bild zu erstellen von array-das kannst du tun:
Den
* 4
am Ende darstellen, RGBA, die wir brauchen, um kompatibel zu sein mit canvas.Füllen des Puffers mit einigen Daten, zum Beispiel:
Gefüllt, wenn die Verwendung des Puffers als Quelle für Leinwand:
Beachten Sie, dass Sie mit der Bilddaten-Puffer (hier: idata.Daten) erstellen, anstatt Ihre eigenen. Erstellen Sie Ihre eigenen ist wirklich nur nützlich, wenn Sie beispielsweise Gleitkommazahlen oder Holen Sie sich die Puffer aus einer anderen Quelle - die Einstellung der Puffer wie oben kümmern clipping-und abrunden der Werte, die für Sie zwar.
Nun die Daten in Ihrer benutzerdefinierten array kopiert, um den canvas-Puffer. Nächster Schritt ist das erstellen einer image-Datei:
Nun können Sie mit dem data-uri als Quelle für ein Bild:
Können Sie nicht ein Bild machen.src so.
Einen gültigen dataURL ist ein base64-kodierter string mit Typ-Präfix--und nicht ein array.
Den Bilddaten-array, verbunden mit einem canvas ist eine Uint8ClampedArray--nicht ein normales javascript-array.
Hier ist ein Weg, um erstellen Sie ein pixel-array, das Sie Bearbeiten können:
Demo: http://jsfiddle.net/m1erickson/956kC/
Erstellen Sie eine
canvas
element die richtige Größe und bekommen den 2D-rendering-context. Sie müssen nicht fügen Sie diese canvas-Bereich, um das Dokument. Verwenden Sie die Kontext-zu erstellenImageData
Objekt. Kopieren Sie die Werte aus dem array in dieImageData
Objekt. In Ihrem Fall kann es effizienter sein, die zum Auffüllen derImageData
Objekt in den ersten Platz, anstatt in einem separaten array. Verwenden Sie die Kontext-istputImageData
zum zeichnen der pixel-Daten. Dann, je nach den spezifischen Anforderungen der "Erstellung von Bild -," müssen Sie möglicherweise zu serialisieren, die Leinwand in eine data-uri, so dass Sie können füllen Sie eineimg
elementsrc
.