Aşağıdakileri denedim. Bir svg görüntüden bir <img>
oluşturdum. Sonra bir tuval üzerine çizdim ve sonunda bunu PNG olarak verdim ve sonuçta ortaya çıkan PNG'yi yeni bir <img>
olarak ayarladım. Android, Chrome, Safari, FireFox'ta iyi çalışır. Ancak, canvas.toDataUrl()
iOS'ta mobil Safari'de çalışmıyor. Sadece SVG resimleri tuvalde kullanmadığınızda çalışır.Canvas.toDataURL mobil cihazda çalışmıyor Safari iOS?
<div id="mydiv"></div>
<img id="image2">
var mydiv = document.getElementById('mydiv'),
image2 = document.getElementById('image2');
image2.crossOrigin="anonymous";
var image3 = new Image();
mydiv.appendChild(image3);
image3.onload = function() {
var canvas = document.createElement('canvas'),
ctx = canvas.getContext('2d');
canvas.width = image3.width;
canvas.height = image3.height;
ctx.drawImage(image3,0,0, canvas.width, canvas.height);
var dataUrl = canvas.toDataURL('image/png');
image2.src = dataUrl;
}
image3.crossOrigin="anonymous";
image3.src = "https://dl.dropboxusercontent.com/u/47067729/sticker4.svg";
Burada bir JSFiddle yarattı: iOS üzerinde çalıştırdığınızda http://jsfiddle.net/confile/ZqJYG/
sorun oluşur Burada
Ben test için kullanmak koddur. Mobil Safari'de değil, mobil Safari'de çalışmıyor.Bu sorun için bir çözüm var mı?
Ayrıca bkz. Http://stackoverflow.com/questions/18972038/why-todataurl-does-not-get-canvas-content-on-mobile ve http://stackoverflow.com/questions/15495221/canvas-todataurl -does-değil-sonuç-resim-jpeg-veri – Phrogz
Emin olmak için: JSFiddle sizin için Chrome veya Firefox üzerinde çalışıyor mu? Test edemem çünkü şirketim DropBox'a olan istekleri engelliyor. Ayrıca, etki alanları arası güvenlik sorunlarına da vurmadığınızdan emin olun, burada uzak SVG'nin tuvalinize çizilmesi onu kırpıyor mu? – Phrogz
@Phrogz evet, masaüstü Chrome ve FF'de çalışır. Başka bir fikir nasıl çözülür? – confile