![](/img/trans.png)
[英]In browser conversion of svg to png image (cross browser including IE)
[英]Is there a way to transform a Raphael paper result to PNG/SVG in any browser (including older IEs)?
我見過很多人都在為這件事而斗爭,但我找不到合適的解決方案,也找不到符合我需要的解決方案。
我正在用Raphael做一些圖表,我基本上需要將它們作為PNG(用於導出,或稍后用於PDF,以及其他一些東西)。 對於Firefox,Chrome,IE 9以及任何其他支持SVG的瀏覽器都很簡單。 實際上有兩種實現方法:使用canvg將SVG渲染為canvas元素,然后獲取圖像數據; 或者將SVG發送到服務器(C#)並使用庫來柵格化它。
問題當然是IE 8和7.在這些瀏覽器中,Raphael輸出VML,並且顯然沒有辦法獲得SVG源。 我找不到任何VML光柵化器,所以它讓我只有一個解決方案:將VML轉換為SVG,或者在SVG中重繪紙張。
我檢查了vectorconvert庫PHP,它實際上使用XSLT轉換將VML轉換為SVG,但我無法使其工作(我已經嘗試了幾種工具來測試XSL,但似乎都沒有工作)。
我試圖通過正確地更改其屬性.type
, .svg
和.vml
來強制Raphael將SVG輸出到隱藏的div,但這也不起作用。
我認為在IE中可能有一種方法可以將SVG樹寫入隱藏的DIV中; 盡管瀏覽器不會顯示它,但文本應該在那里。
有誰知道實現它的方法? 謝謝!
要渲染SVG,您還可以使用CanVG庫。
它是帶有畫布結果輸出的SVG解析器和渲染器。
接下來,您可以簡單地將畫布中的像素數據輸出到PNG 。
要解決IE限制,您可以使用Chrome Frame 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.