我想拍攝帶有.svg圖像的div或canvas的快照。 例如我已經嘗試過html2canvas,因爲這不包括svg圖像。只是拍了其他頁面數據的快照。如何拍攝帶有.svg圖像的div或canvas的快照?
-1
A
回答
0
您可以(as shown in this demo - 下副本是包含SVG提取的帆布),但有一個例外:
不能提取圖像如果SVG有任何外部引用。如果SVG使用圖片,則需要使用Blob
或data-uri
內聯。否則安全將會罷工。
其他的事情(從this article),這將影響到SVG的呈現方式(用帆布語境中使用)注意:
限制
爲了安全起見,蛤蚧地的一些限制在SVG內容 當它被用作圖像時:
- JavaScript已禁用。
- 無法加載外部資源(例如圖像,樣式表),但如果通過BlobBuilder對象URL或 data:URI內聯,則可以使用它們。
- :未呈現訪問鏈接樣式。
- 禁用平臺本機構件樣式(基於操作系統主題)。
請注意,上述限制是特定於圖像上下文;它們 當SVG內容直接觀察不適用,或當它經由<IFRAME>,<對象>,或<嵌入 作爲文檔嵌入>元件。
雖然這提到壁虎它也適用於其他瀏覽器。
除此之外,您可以在畫布上使用SVG並將其作爲圖像提取。解決這個問題的唯一方法(關於抓取快照,除非你想手動解析SVG來內聯外部內容),就是將圖像鏈接重定向到服務器,並從那裏加載頁面和圖像 - 這意味着你需要預先處理(轉換)SVG文件。
+1
@markE oops,我的壞。我鏈接的例子也是爲了完全不同的東西而做的,我只是想表明可以通過繪製svg來獲取畫布(對於foreignObject而言不是那麼多)。這個例子可能更適合:http://jsfiddle.net/AbdiasSoftware/Y3K57/ – K3N
相關問題
- 1. 拍攝快照QML視圖
- 2. 如何在Flex中拍攝攝像頭快照圖片?
- 3. 拍攝快照視頻的快照
- 4. AVCaptureVideoPreviewLayer:拍攝快照
- 5. 如何拍攝excel表單的快照/圖像?
- 6. 拍攝UICollectionViewCell的快照
- 7. 拍攝SQL表的快照
- 8. 拍攝快照的CCGLView
- 9. Canvas element over div:網絡攝像頭拍照
- 10. 當拍攝背景時拍攝iOS拍攝的快照
- 11. 在沒有JMF的java中拍攝攝像頭快照?
- 12. 拍攝AVCaptureVideoPreviewLayer視圖的快照
- 13. 拍攝UIWebView的快照/屏幕截圖
- 14. 拍攝快照的視圖包含UIDatePicker
- 15. 拍攝UIScrollView中支持CATiledLayer的視圖的圖像快照
- 16. 如何從網絡攝像機拍攝單張快照?
- 17. PDF如何拍攝預覽快照?
- 18. 如何使用cpanel拍攝快照
- 19. 如何拍攝卡桑德拉快照?
- 20. 拍攝頁面快照javascript
- 21. 拍攝報告快照
- 22. 用c#拍攝快照(AForge)
- 23. 拍攝視頻快照
- 24. 如何拍攝帶有.png圖像的圖片
- 25. 拍一個div的快照
- 26. 拍攝前置攝像頭的快照android
- 27. 拍攝快照的的IObservable <T>
- 28. 帶攝像頭的意圖拍照永遠不會回到onActivityResult()
- 29. 如何使用遮罩層拍攝圖層的快照?
- 30. 如何在Android上拍攝一個視圖的屏幕快照?
請提供您的代碼。它會更好,如果它是jsfiddle? – Hariharan