Je voudrais copier TOUS les contenus d'un canevas et les transférer dans un autre tout du côté client. Je pense que j'utiliserais la méthode canvas.toDataURL()
et context.drawImage()
pour implémenter cela, mais je rencontre quelques problèmes.
Ma solution serait d'obtenir Canvas.toDataURL()
et de stocker cela dans un objet Image en Javascript, puis d'utiliser la context.drawImage()
méthode pour le replacer.
Cependant, je pense que la toDataURL
méthode renvoie une balise codée 64 bits avec "data:image/png;base64,"
préfixe. Cela ne semble pas être une balise valide (je pourrais toujours utiliser du RegEx pour supprimer cela), mais est-ce que cette chaîne codée en 64 bits APRÈS la "data:image/png;base64,"
sous - chaîne est une image valide? Puis-je dire image.src=iVBORw...ASASDAS
et dessiner ceci sur la toile?
J'ai examiné quelques problèmes connexes: Afficher l'image du canevas d'un canevas à un autre canevas en utilisant base64
Mais les solutions ne semblent pas correctes.
HTMLCanvasElement
), vous ne pouvez pas dessiner un contexte (CanvasRenderingContext2D
). UtilisezmyContext.canvas
plutôt.source canvas
vient ...@ robert-hurst a une approche plus propre.
Cependant, cette solution peut également être utilisée dans les endroits où vous souhaitez réellement avoir une copie de l'URL de données après la copie. Par exemple, lorsque vous créez un site Web qui utilise de nombreuses opérations d'image / de canevas.
la source