2010-07-31 18 views
17

Voy a empezar con el guión:lienzo drawImage usando el URL de datos


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

El objetivo es ahorrar una instancia de la tela y volver a aplicar más tarde [Similar a la forma ctx.save() ataja el estilo y transformaciones].

Sin embargo, recibí el error que dice tipos incompatibles (Error no detectado: TYPE_MISMATCH_ERR: DOM Exception 17). ¿Hay algún método de lienzo que me permita utilizar la cadena de URL de datos para volver a dibujar la instancia?

** Si hay una forma mejor de implementar esta idea de guardar/restaurar que tengo, eso también sería muy apreciado.

-Firstmate

Respuesta

18

Sí, se puede crear un elemento de imagen con su fuente como _savedInstance y luego dibujar en el lienzo.

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

Sí, también se puede extraer de un elemento canvas/vídeo, así, ver la especificación aquí: http://www.whatwg.org/specs/web-apps/current-work/multipage/the- canvas-element.html # dom-context-2d-drawimage – peol

+0

¡Funcionó como un amuleto! Y gracias por el enlace Peol, que es útil para otra parte del proyecto XD – Firstmate

+0

Ver también este problema en Chrome: http://code.google.com/p/chromium/issues/detail?id=57941 – Vanuan

Cuestiones relacionadas