estoy tratando de cargar una imagen SVG en la lona para la manipulación de píxeles Necesito un método como toDataURL
o getImageData
para SVG¿Hay un equivalente del método toDataURL de canvas para SVG?
en Chrome/Safari puedo intentar hacerlo a través de e imagen y el lienzo
var img = new Image()
img.onload = function(){
ctx.drawImage(img,0,0) //this correctly draws the svg image to the canvas! however...
var dataURL = canvas.toDataURL(); //SECURITY_ERR: DOM Exception 18
var data = ctx.getImageData(0,0,img.width, img.height).data //also SECURITY_ERR: DOM Exception 18
}
img.src = "image.svg" //that is an svg file. (same domain as html file :))
Pero recibo errores de seguridad. ¿Alguna otra manera?
Aquí está una demostración en vivo del problema http://clstff.appspot.com/gist/462846 (se puede ver el código fuente)
Es la imagen SVG procedentes de un dominio diferente? Si es así, no puede llamar a 'toDataURL' o' getImageData' porque el lienzo ya no es de "limpieza de origen". –
Viene del * mismo * dominio. Incluso intenté hacer 'img.src =" data: image/svg + xml; base64, ... "' pero eso tampoco funcionó –
Esto parece ser un error en Webkit: https: //bugs.webkit. org/show_bug.cgi? id = 39059 – stefanw