2010-07-31 3 views
17

Je vais commencer par le script:Toile drawImage en utilisant l'URL de données


    function saveInstance() { 
    _savedInstance = document.getElementById('canvasID').toDataURL(); 
    } 
    function restoreInstance() { 
    ctx.drawImage(_savedInstance,0,0); 
    } 

Le but est d'enregistrer une instance de la toile et réappliquer plus tard [similaire à la façon dont ctx.save() enregistre le style et transformations].

Cependant, j'ai l'erreur qui indique les types incompatibles (Erreur non détectée: TYPE_MISMATCH_ERR: DOM Exception 17). Existe-t-il une méthode de canevas qui me permette d'utiliser la chaîne d'URL de données pour redessiner l'instance?

** S'il y a une meilleure façon de mettre en œuvre cette idée de sauvegarde/restauration que j'ai, ce serait également très apprécié.

-Firstmate

Répondre

18

Oui, vous pouvez créer un élément d'image avec sa source _savedInstance puis dessiner sur la toile.

var img = new Image(); 
img.src = _savedInstance; 
ctx.drawImage(img,0,0); 
+1

Oui, vous pouvez également tirer un élément toile/vidéo aussi bien, voir ici les spécifications: http://www.whatwg.org/specs/web-apps/current-work/multipage/the- canvas-element.html # dom-context-2d-drawimage – peol

+0

A travaillé comme un charme! Et merci pour le lien Peol, qui est très pratique pour une autre partie du projet XD – Firstmate

+0

Voir aussi ce numéro dans Chrome: http://code.google.com/p/chromium/issues/detail?id=57941 – Vanuan

Questions connexes