Ich möchte ALLE Inhalte einer Zeichenfläche kopieren und auf der Clientseite auf eine andere übertragen. Ich würde denken, dass ich die Methode canvas.toDataURL()
und context.drawImage()
verwenden würde, um dies zu implementieren, aber ich stoße auf einige Probleme.
Meine Lösung wäre, Canvas.toDataURL()
dies in einem Image-Objekt in Javascript abzurufen und zu speichern und es dann mithilfe der context.drawImage()
Methode wieder zu platzieren.
Ich glaube jedoch, dass die toDataURL
Methode ein 64-Bit-codiertes Tag mit "data:image/png;base64,"
vorangestelltem Tag zurückgibt . Dies scheint kein gültiges Tag zu sein (ich könnte immer etwas RegEx verwenden, um dies zu entfernen), aber ist diese 64-Bit-codierte Zeichenfolge NACH dem "data:image/png;base64,"
Teilstring ein gültiges Bild? Kann ich das sagen image.src=iVBORw...ASASDAS
und auf die Leinwand zurückziehen?
Ich habe mir einige verwandte Probleme angesehen: Anzeigen von Leinwandbildern von einer Leinwand auf eine andere Leinwand mit base64
Die Lösungen scheinen jedoch nicht korrekt zu sein.
HTMLCanvasElement
), können Sie keinen Kontext zeichnen (CanvasRenderingContext2D
). Verwenden SiemyContext.canvas
stattdessen.source canvas
kommt ...@ Robert-Hurst hat einen saubereren Ansatz.
Diese Lösung kann jedoch auch an Orten verwendet werden, an denen Sie nach dem Kopieren tatsächlich eine Kopie der Daten-URL haben möchten. Zum Beispiel, wenn Sie eine Website erstellen, die viele Bild- / Zeichenflächenoperationen verwendet.
quelle