需要將HTML5畫布轉換爲SVG進行編輯? 指針可以理解將HTML5畫布轉換爲SVG的方法?
回答
帆布SVG讓您保存2D http://code.google.com/p/canvas-svg/ 你可以做反向與canvg http://code.google.com/p/canvg/
參見http://code.google.com/p/html5-canvas-svg/
Fabric.js通告有一個「畫布到SVG」解析器,它有一個演示,顯然converts canvas to SVG。雖然其他項目如果使用控件然後「將畫布柵格化爲」SVG,但確實存在轉換默認圖像的問題,所以您必須檢查這是否實際上能夠將原始畫布轉換爲SVG,或者只能將原始畫布轉換爲SVG如果通過編輯器創建項目。
嘗試canvas2svg.js。 [Demo]
我碰到需要這個自己,並最終爲此寫了一個庫。當時,其他庫有點稀疏,或者沒有生成有效的SVG。
雖然基本概念是相同的。您可以創建一個模擬畫布2D上下文,然後在調用畫布繪製命令時生成SVG場景圖。基本上你可以重複使用相同的繪圖功能。根據傳遞給它的上下文,您可以繪製標準2D畫布或生成可序列化的SVG文檔。
因爲它只是一個位圖,所以不能實際「轉換」已繪製的畫布元素,因此請記住這一點。當你輸出到SVG時,你真的只是使用僞造的上下文再次調用相同的繪圖函數。
因此,作爲一個簡單的例子:
//create a canvas2svg mock context
var myMockContext = new C2S(500,500); //pass in your desired SVG document width/height
var draw = function(ctx) {
//do your normal drawing
ctx.fillRect(0,0,200,200);
//etc...
}
draw(myMockContext);
myMockContext.getSerializedSvg(); //returns the serialized SVG document
myMockContext.getSvg(); //inline svg
我想在畫布上必須已經繪製此方法的SVG,但我發現它在試圖創建一個下載SVG按鈕自己的過程中,也跑了進入這個堆棧溢出問題在相同的搜索計算它可能是相關的。
從 https://bramp.github.io/js-sequence-diagrams/
左右線200ish,但誰知道,他可能會在未來
編輯器編輯的網站只是一個div元素,併爲這種噪聲的目的,他只是包裝的東西svg生成了下載的svg。
diagram_div是實際的SVG是坐在帆布。
function(ev) {
var svg = diagram_div.find('svg')[0];
var width = parseInt(svg.width.baseVal.value);
var height = parseInt(svg.height.baseVal.value);
var data = editor.getValue();
var xml = '<?xml version="1.0" encoding="utf-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"><svg xmlns="http://www.w3.org/2000/svg" width="' + width + '" height="' + height + '" xmlns:xlink="http://www.w3.org/1999/xlink"><source><![CDATA[' + data + ']]></source>' + svg.innerHTML + '</svg>';
var a = $(this);
a.attr("download", "diagram.svg"); // TODO I could put title here
a.attr("href", "data:image/svg+xml," + encodeURIComponent(xml));
}
- 1. 將html5畫布示例轉換爲svg
- 2. 將矢量轉換爲HTML5畫布(DXF轉爲畫布座標)
- 3. 將PictureStream轉換爲HTML5畫布
- 4. 將OpenGL畫布座標轉換爲HTML5畫布座標
- 5. HTML5畫布,使用jspdf.js將畫布轉換爲PDF
- 6. Canvg |將SVG轉換爲畫布以輸出爲圖像
- 7. 將畫布轉換爲pdf
- 8. 將多個畫布轉換爲html5中的dataURL
- 9. 將畫布或控制點轉換爲SVG
- 10. 將畫布轉換爲WPF中writeablebitmap的最快方法?
- 11. HTML5畫布isPointInPath()方法
- 12. 經由腳本#轉換System.Drawing.Graphics到HTML5畫布方法
- 13. 將SVG轉換爲畫布,同時排除SVG視圖框外的區域
- 14. 任何方式將css3動畫轉換爲畫布動畫?
- 15. KineticJS:如何將舞臺轉換爲HTML5畫布元素?
- 16. 將HTML5畫布序列轉換爲視頻文件
- 17. 如何將html5畫布圖像轉換爲json對象?
- 18. 將HTML5畫布轉換爲XML,反之亦然
- 19. 使用Fabric Js的Svg到畫布轉換污染畫布
- 20. 轉換代碼從畫布到svg
- 21. 轉換SVG不顯示在Android畫布
- 22. 使用帶有SVG的HTML5畫布
- 23. 圖像到畫布/ HTML5轉換
- 24. HTML5畫布:混合多個轉換
- 25. 將動畫GIF轉換爲動畫SVG並獲取SVG的代碼?
- 26. HTML5畫布或SVG世界地圖
- 27. 新的HTML5畫布方法:addHitRegion
- 28. 無法將SVG轉換爲WMF與Imagemagick
- 29. Inkscape無法將SVG轉換爲EPS
- 30. 將AWT畫布轉換爲Swing
感謝您的圖書館。我可以將它用於頁面上已經創建的畫布嗎?我想實現它到Carota畫布文本編輯器並將我的文本轉換爲SVG。 – 2015-11-24 09:12:01
不是。 canvas2svg代替了普通的繪圖方法。 – 2016-02-01 05:47:42
這太棒了!我已經使用HTML畫布繪製了我的Chrome擴展程序的瀏覽器操作圖標,並且正在尋找一種創建SVG版本而不重複所有內容的方法。謝謝! – 2016-09-04 22:46:51