我正在使用插件(dom-to-image)從div生成SVG內容。 它返回我這樣一個dataURL:將SVG dataUrl轉換爲base64
data image/xml, charset utf-8, <svg...
如果在<img src
圖像看跌,這是顯示正常。
意圖是抓住這個dataURL,將其轉換爲base64,這樣我就可以將它保存爲image.png在移動應用程序上。
這可能嗎?
我試過這個解決方案https://stackoverflow.com/a/28450879/1691609 但是coudn't開始工作。 控制檯火有關dataUrl
TypeError: Failed to execute 'serializeToString' on 'XMLSerializer': parameter 1 is not of type 'Node'.
====更新::問題說明/歷史====
我使用離子型框架的錯誤,所以我的項目是一個移動應用程序。 圖像爲已經在工作導致現在,其渲染PNG通過到PN功能。 問題是光柵PNG是一個模糊的。
所以我想:也許SVG會有更好的質量。 它是!其實100%完美。
在離子,我使用2步驟過程來保存圖像。 獲取由dom-img(base64)dataURL生成的PNG後,我將其轉換爲Blob,然後保存到設備中。 這是行得通的,但正如我所說,最終的結果是模糊的。
然後用SVG也許它會更「高質量」每說。
所以,爲了做到對公寓已經工作的過程「最小」的變化:DI只需要一個SVG轉換成的base64 dataURL ....
或者,正如一些你向我解釋說,成別的東西,像帆布... 我不知道任何多:/
===
對不起,長的帖子,我真的,真的很感謝你的幫助傢伙!
您希望您的SVG PNG版本?然後你需要柵格化它。 js的唯一途徑就是通過畫布API。你可以直接用'drawImage'方法繪製你的圖像,但是這在IE瀏覽器中不起作用。你也可以嘗試像canvg這樣的庫,但是你需要首先解析dataURL(做與你指向的Q/A相反的內容)。 base64只是一種字符串編碼,它與圖像的格式無關。 – Kaiido
爲什麼你需要將它轉換爲base64才能將其保存爲圖像PNG?如果你想讓我們確定你爲什麼得到TypeError,我們需要[mcve]。 –
@Kaiido我用一個解釋更新了我的問題:D –