2009-05-27 6 views
6

Was ist der beste Weg, um Bilddaten aus dem Inhalt eines HTML-Canvas-Elements zu generieren?Generieren von Bilddaten aus dem HTML-Canvas-Element

Ich möchte die Bilddaten so erstellen, dass sie an einen Server übertragen werden können (der Benutzer muss nicht direkt in einer Datei speichern können). Die Bilddaten sollten in einem gängigen Format wie PNG oder JPEG vorliegen.

Lösungen, die in mehreren Browsern korrekt funktionieren, werden bevorzugt. Wenn jedoch jede Lösung vom Browser abhängt, sollten aktuelle Versionen von Firefox als Ziel gewählt werden.

Antwort

2

Ich denke, eine Lib, die Sie verwenden können, ist Canvas2Image, verwendet native Features aus Canvas, aber es wird nicht auf jedem Browser funktionieren. Ich habe eine optimierte Version dieser Lib, wenn Sie möchten, ich werde es mit Ihnen teilen.

Dann könnten Sie die generierte Data URI und senden Sie es mit Ajax an den Server.

+0

Danke, das klingt nach dem, was ich brauche. Ich würde die optimierte Version schätzen. Sie sollten meine E-Mail-Adresse finden, indem Sie meine in meinem Profil angegebene Website besuchen. – Doug

+0

Kein Problem! http://flotr.googlecode.com/svn/trunk/flotr/flotr/prototype/lib/canvas2image.js Ich änderte den BMP-Rendering, um einen Alpha-Kanal und einige Geschwindigkeitsoptimierungen zu haben. Tatsächlich habe ich in einer freien Bibliothek gearbeitet, an der ich arbeite, also ist es kostenlos und wird es immer sein. –

+0

Danke, viel! Das Projekt, das ich plane, wird wahrscheinlich die Quelle frei verfügbar haben, da es hauptsächlich für den persönlichen Gebrauch bestimmt ist. – Doug

4

Firefox und Opera haben eine toDataURL() Methode, die eine Daten-URL PNG-formatiert zurückgibt. Sie können das Ergebnis einem Formularfeld zuweisen, um es an den Server zu senden.

Die Daten-URL ist Base-64-codiert, daher müssen Sie sie auf der Serverseite dekodieren. Sie müssten auch die "Daten: image/png;" Teil natürlich.

Verwandte Themen