Próbuję załadować svg obraz na płótnie dla manipulacji piksela muszę metody takie jak toDataURL
lub getImageData
dla SVGCzy istnieje odpowiednik metody canvas doDataURL dla SVG?
w Chrome/Safari mogę spróbować zrobić to poprzez i obraz i płótna
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 :))
Ale dostaję błędy bezpieczeństwa. W inny sposób?
Oto live demo problemu http://clstff.appspot.com/gist/462846 (można zobaczyć źródło)
Czy obraz SVG pochodzące z innej domeny? Jeśli tak, nie można wywołać 'toDataURL' lub' getImageData', ponieważ płótno nie jest już "czyste-początkowe". –
Pochodzi z domeny * tej samej *. Próbowałem nawet robić 'img.src =" data: image/svg + xml; base64, ... "' ale to też nie zadziałało –
To wydaje się być błędem w Webkit: https: //bugs.webkit. org/show_bug.cgi? id = 39059 – stefanw