Я пытаюсь загрузить SVG изображение в холст для манипуляции пиксельной мне нужен метод, как toDataURL
или getImageData
для SVGЕсть ли эквивалент метода canvas toDataURL для SVG?
на Chrome/Safari я могу попробовать сделать это через и изображение и холст
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 :))
Но я получаю ошибки в системе безопасности. Любой другой способ?
Вот живой демо проблемы http://clstff.appspot.com/gist/462846 (вы можете посмотреть источник)
ли SVG изображение приходит из другого домена? Если это так, вы не можете вызывать 'toDataURL' или' getImageData', потому что холст не является «источником-чистым». –
Он приходит от * такой же * домена. Я даже попытался сделать «img.src =» данные: image/svg + xml; base64, ... »', но это также не сработало –
Это похоже на ошибку в Webkit: https: //bugs.webkit. org/show_bug.cgi? id = 39059 – stefanw