[問題] JQuery圖片下載按鈕

看板Ajax作者時間11年前 (2014/07/18 21:09), 11年前編輯推噓0(0018)
留言18則, 2人參與, 最新討論串1/1
請教各位前輩 我想作一個功能: 點一個"匯出"按鈕,就能把svg匯出成jpg或png之類的圖片檔 目前已作到,將svg轉成img tag 但不知如何把img弄成"另存新檔"的視窗,供使用者下載 在網路上有找到"FileSaver"套件,但這個似乎沒有提供img -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 58.99.73.122 ※ 文章網址: http://www.ptt.cc/bbs/Ajax/M.1405688969.A.320.html

07/18 22:57, , 1F
沒辦法取到blob嗎?或是用一個a,在上面加上download屬性
07/18 22:57, 1F

07/18 22:58, , 2F
讓使用者自己點
07/18 22:58, 2F

07/18 23:06, , 3F
有取到blob
07/18 23:06, 3F
網路上找到的SVG轉IMG範圍 http://0rz.tw/5XNZW 其中就有用到blob 但我在 var blob = new Blob([svgData], { type: "image/svg+xml;charset=utf-8" }); 這行之後加上 saveAs(blob, "pretty image.png"); 下載圖片後是空白的… ※ 編輯: fr730149 (58.99.73.122), 07/18/2014 23:17:16

07/19 13:35, , 4F
是否能找個地方,把目前的code po出來?像 jsbin.com
07/19 13:35, 4F
http://jsfiddle.net/qaMs5/ chart(svg檔)的部份是用componentOne Chat的套件 script 71行 是svg轉img的語法 我的想法是按頁面上的button,就能直接把chart匯出來。 但目前只能作到,按button後把svg轉img… ※ 編輯: fr730149 (58.99.73.122), 07/19/2014 15:22:46

07/19 15:51, , 5F
就只是讀取順序問題,ToImg重頭到尾都沒被呼叫到
07/19 15:51, 5F
這個就奇怪了,同樣的寫法…在localhost就可以work 或許是$.fn.toImage = function () {...這一段,我在localhost是用引入js檔方式 只要跑上面那一段,就可以把svg tag轉成img tag,只不過在jsfiddle上不能運作

07/19 15:52, , 6F
http://jsfiddle.net/qaMs5/2/ 你說有轉換成功是錯覺吧?
07/19 15:52, 6F
先輩的寫法是把它save as svg,不知是否可改成save as png/jpg?

07/19 16:03, , 7F
然後一片空白貌似是ie的問題
07/19 16:03, 7F
Blob我記得似乎止支援IE10+ 不知道是否可用非Blob的方式把svg匯出來…

07/19 16:08, , 8F
不知為何,它生成的svg標籤有2個 xmlns,導致讀取錯誤
07/19 16:08, 8F
最後,非常感謝您的解答 ※ 編輯: fr730149 (58.99.73.122), 07/19/2014 17:30:45

07/19 19:39, , 9F
jsfiddle的code預設是插在onload裡,所以那種寫法穩死
07/19 19:39, 9F

07/19 19:44, , 10F
除了blob外,就算不支援也可以用data uri scheme輸出
07/19 19:44, 10F

07/19 19:45, , 11F
缺點是不支援自訂檔名
07/19 19:45, 11F

07/19 19:46, , 12F
至於轉png,可以透過canvas的 .toDataURL(); 達成
07/19 19:46, 12F

07/19 19:54, , 13F
http://jsbin.com/fobev/1/edit data uri scheme的範例
07/19 19:54, 13F

07/19 21:25, , 14F
但ie沒辦法在客戶端轉圖片,因為 http://goo.gl/kaY2KP
07/19 21:25, 14F

07/19 21:26, , 15F
不知為何他連data URL的網址都擋。
07/19 21:26, 15F

07/19 21:27, , 16F
真的要支援ie建議還是用伺服器端支援,ie的問題太多了...
07/19 21:27, 16F

07/19 21:31, , 17F
轉jpg的範例
07/19 21:31, 17F

07/19 21:31, , 18F
文章代碼(AID): #1JoHo9CW (Ajax)
文章代碼(AID): #1JoHo9CW (Ajax)