Question

J'ai donc besoin de sauvegarder les données d'image dessinées sur un élément <canvas>. Et il y a la méthode toDataURL () qui fonctionne dans les navigateurs les plus modernes.

Sauf ... vous l'avez deviné ... Internet Explorer.

J'ai cherché sur Internet, mais partout les gens disent que je devrais utiliser SVG / VML pour sauvegarder les données, mais ils ne disent jamais comment. Je n'ai aucune expérience de SVG / VML dans IE, comment enregistrer une image dessinée dans un élément de toile dans Internet Explorer? Quelqu'un at-il de l'expérience?

Pour le moment, je devais dupliquer le code de dessin à la fois sur le client et sur le serveur, qui commençait à se compliquer. Donc, s’il existe un moyen d’extraire l’image dessinée sur la balise canvas du côté client (ou serveur), cela serait certainement utile.

Merci!

Était-ce utile?

La solution

Vous pourrez peut-être obtenir le VML et le même, mais comme il s’agit d’un format XML, ce n’est probablement pas ce que vous voulez. Il n’est pas possible d’obtenir une image d’Internet sans utiliser de plug-in.

Autres conseils

  1. canvas.toDataURL fonctionne dans IE9.

  2. Si vous en avez vraiment besoin pour le vieil IE ... eh bien ... je vais vous donner un devis

  

toDataURL ne sera pas pris en charge en raison de la nature de la méthode utilisée par   Canevas Explorer: VML. Nous n'avons pas trouvé de moyen de pixelliser VML en bitmap   images utilisant JS, et même pas avec un script côté serveur. Donc si tu   vraiment besoin toDataURL dans IE, vous devrez utiliser FxCanvas   (http://code.google.com/p/fxcanvas/) ou FlashCanvas   (http://flashcanvas.net/): deux solutions basées sur Flash.

http://code.google.com/p/explorercanvas/ issues / detail? id = 77

J'ai eu le même problème. Ce que je voulais faire, c'était convertir la toile en image, puis l'ouvrir dans un nouvel onglet. J'ai trouvé que la conversion n'était pas le problème, mais l'ouverture dans un nouveau lien l'était. Je l'ai résolu en générant l'image, en la mettant dans une balise img, puis en l'incluant dans la nouvelle page. J'ai ensuite ouvert ladite nouvelle page à l'aide de ce tutoriel - http://www.javascripter.net/faq/writingt .htm

Voici ce que j'ai fait

var canvas = document.getElementById('canvas1');
var dataURL = canvas.toDataURL();
var width = parseInt($("#main").width()); //main is the div that contains my canvas
var height = parseInt($("#main").height());
newWindow("<img src=\"" + dataURL + "\"/>");
function newWindow(content) {
    top.consoleRef = window.open("", "Organisational Structure",
        "width="+width+",height="+height
        + ",menubar=0"
        + ",toolbar=1"
        + ",status=0"
        + ",scrollbars=1"
        + ",resizable=1")
    top.consoleRef.document.writeln(
        "<html><head><title>Console</title></head>"
        + "<body bgcolor=white onLoad=\"self.focus()\">"
        + content
        + "</body></html>"
    )
    top.consoleRef.document.close()
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top