मैंने निम्नलिखित की कोशिश की। मैंने एक svg छवि से <img>
बनाया है। फिर मैं इसे कैनवास पर खींचता हूं और आखिरकार मैंने इसे पीएनजी के रूप में निर्यात किया और परिणामस्वरूप पीएनजी को एक नया <img>
सेट किया। यह एंड्रॉइड, क्रोम, सफारी, फ़ायरफ़ॉक्स पर अच्छा काम करता है। लेकिन, canvas.toDataUrl()
आईओएस पर मोबाइल सफारी पर काम नहीं कर रहा है। यह केवल तभी काम कर रहा है जब आप कैनवास पर एसवीजी छवियों का उपयोग नहीं करते हैं। मैं एक JSFiddle यहां बनाए गएCanvas.toDataURL मोबाइल सफारी आईओएस पर काम नहीं कर रहा है?
<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";
: http://jsfiddle.net/confile/ZqJYG/
समस्या केवल तब होता है जब आप iOS पर इसे चलाने
यहाँ कोड मैं परीक्षण के लिए उपयोग है। यह मोबाइल सफारी पर नहीं चलता है, न कि मोबाइल क्रोम पर।
क्या इस समस्या के लिए कोई समाधान है?
यह भी देखें http://stackoverflow.com/questions/18972038/why-todataurl-does-not-get-canvas-content-on- मोबाइल और http://stackoverflow.com/questions/15495221/canvas-todataurl -does-not-result-in-image-jpeg-data – Phrogz
यह सुनिश्चित करने के लिए: क्या आपका JSFiddle क्रोम या फ़ायरफ़ॉक्स पर आपके लिए काम करता है? मैं परीक्षण नहीं कर सकता क्योंकि मेरी कंपनी ड्रॉपबॉक्स को अनुरोध करती है। इसके अलावा, क्या आप वाकई क्रॉस-डोमेन सुरक्षा समस्याओं को मार नहीं रहे हैं, जहां आपके कैनवास में रिमोट एसवीजी ड्राइंग करना इसे खराब कर रहा है? – Phrogz
@Phrogz हाँ यह डेस्कटॉप क्रोम और एफएफ पर काम करता है। किसी भी अन्य विचार को हल करने के लिए कैसे। – confile