簡體   English   中英

將base64編碼的svg轉換為png

[英]Converting a base64 encoded svg to a png

我需要將base64編碼的svg轉換為png,然后將其返回給要渲染的客戶端。

我的想法是,我正在使用d3.js在客戶端上繪制一個svg,我需要將其轉換為png。

我嘗試將javascript根目錄並在畫布上編寫svg,然后將其轉換為DataUrl,但IE在所有版本上均存在問題,因此這不是可行的選擇。

我在網上搜索了一下,所有我能找到的就是Inkscape。

對於我來說,這不是一個可行的解決方案,因為對服務器的訪問受到限制,並且坦率地說,我認為安裝整個應用程序以實現簡單功能並不是一個好主意。

還有其他解決方案可以采用以64為基數的svg編碼,並返回可以在圖像中顯示的png嗎?

我遇到了同樣的問題,但是我能夠將SVG渲染為圖像,因此您的用戶可以右鍵單擊以下載圖像或在畫布上單擊鼠標右鍵。 還有Canvg,它的庫似乎可以與IE一起使用,但是對於復雜的SVG來說並不准確,因此不能滿足我的需求。 也許會對您有所幫助。

我的問題中有可以在IE中運行的代碼,只需使用IMG或Canvas對象即可,而無需調用toDataURI。

結帳Canvg ,可能會有幫助。

祝好運! 如果您找到更好的解決方案,請告訴我。 :-)

我發現,由於必須支持IE 11,我改為使用“ canvas-toBlob.js”和“ FileSaver.js”將畫布blob到PNG。

$("#save-btn").click(function() 
{
    $("#myChart").get(0).toBlob(function(blob) 
    {
        saveAs(blob, "chart_1.png");
    });
});

https://jsfiddle.net/mfvmoy64/155

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM