2012-05-06 118 views
15

我使用FabricJS,我遇到一個問題,我的SVG的畫布顯示:問題與SVG顯示/渲染Fabric.js

  • 結果顯示fabricJS的選擇框外(由於翻譯?)
  • 選擇的錨點在轉換後消失,然後無法找回它們。

下面是截圖: enter image description here

我使用的Potrace輸出SVG,我認爲這是我的問題的由來。
以下是SVG的代碼:SVG code in pastebin
您可以在此頁面使用FabricJS對其進行測試:FabricJS Kitchensing example
只需將SVG的代碼粘貼到「加載SVG」區域,然後調整大小並旋轉部分框以顯示SVG。

你知道我的SVG代碼的一部分或導致問題的fabricjS代碼的一部分嗎? 如果是這樣,我可以自己輕易改變它嗎?如果沒有,是否有人可以糾正或找到可能的錯誤?

非常感謝您的幫助。

編輯:貌似,FabricJS不喜歡這一行的SVG的:

<g transform="translate(0,648) scale(0.098780,-0.098780)" fill="#000000" stroke="none"> 

和更特別的轉換和調整屬性...如何解決?

EDIT2:解決方法是翻譯和尺度分別等於(0,0)和(1,1),或者更好,它們應用於座標。

有沒有人有想過用Potrace或JS腳本來做到這一點?

+2

感謝Peter Collingridge SVG優化器,我找到了解決方案: http://petercollingridge.appspot.com/它適用於SVG文件的所有g-變換! – Zorkzyd

+2

如果你找到了解決方案,你可以把它變成一個自我回答的問題。 –

+0

@Zorkzyd,請提供答案,我也面臨同樣的問題,你面對....我能幫助,擺脫這個問題? – kuldipem

回答

4

2年後,fabricJs現在能夠完全解析和管理這個SVG。 只需在kitchenSink演示中粘貼舊的pasteBin SVG代碼,您就會發現它的加載效果不錯。

最近在SVG解析區發生了很多改進。 我知道這不是一個答案,因爲用戶期望的是stackoverflow,但更好地知道,認爲這可能仍然是一個問題。