2012-08-08 15 views
0

我使用Nihilogic的庫Canvas2Image將畫布圖形轉換爲PNG,併爲我的應用程序的用戶提供下載該圖像的可能性。如何以用戶友好的方式在計算機上保存從畫布轉換而來的圖像?

我需要的是能夠給可下載文件一個名稱和擴展名(例如「goalboard.png」),並且不會將其下載爲僅具有無法識別的擴展名的八位位組流,並且名稱爲「下載「,因爲普通的Joe不知道如何處理這樣的文件。我需要在客戶端執行此操作,因爲根據數據量將該字節流發送到服務器可能需要20秒(這是一個大畫布!)。更不用說檢索後的圖像...

那麼,我該怎麼做?

回答

0

,我需要做這個客戶端

那麼這需要一種殺死你的機會。抱歉。

你不能做你想做的事情,你得到的最好的是顯示圖像並告訴用戶右鍵單擊「保存」。

+0

事實上,他們已經擁有的只是觀看它的選項,所以下載是多餘的(不是我的要求,但我的客戶)。 – 2012-08-08 15:38:17

+0

是的,但是如果沒有服務器參與,你不能創建一個下載請求。 – 2012-08-08 15:51:04

+0

我明白了。我找不到有關如何完成此類任務的任何信息,所以我假設了它。但必須嘗試... – 2012-08-08 16:06:29

1

我有一個大RaphaelJs畫布太大,需要允許用戶運行一個腳本,可以將許多畫布保存爲png圖像。 我試圖將我的raphael轉換爲svn,然後將我的svg轉換爲png,然後使用wget,但那當然不起作用,因爲我的canvas由javascript和wget生成,無法處理該問題。最後我意識到我可以讓我的webapp只用svg畫布創建一個頁面,並使用phantomjs(無頭瀏覽器)將它保存爲png。它工作得很好。

就這麼簡單。 1.讓你的web應用程序只用svg畫布建立一個頁面。 2.創建下面的代碼svgToPgn.js文件:=需要( '網頁')創建()

VAR頁面; (); page.open('URL_TO_YOUR_HTML_PAGE',function(){ page.render('PATH_TO_PNG/example.png'); phantom.exit(); }); 3.下載Phantom(http://phantomjs.org),解壓縮並在bin目錄中找到phantomjs可執行文件。兼營: ./phantomjs svgToPgn.js 您的PNG文件將保存在:/ PATH_TO_PNG example.png

相關問題