如何以用户友好的方式在计算机上保存从画布转换的图像?

时间:2012-08-08 15:30:11

标签: javascript canvas mime-types

我正在使用Nihilogic的库 Canvas2Image 将画布图转换为PNG,并为我的应用程序的用户提供下载该图像的可能性。

我需要的是能够为可下载文件提供名称和 png 扩展名(例如“goalboard.png”),而不是将其作为没有可识别扩展名的八位字节流下载而名称“下载”,因为普通的乔不知道如何处理这样的文件。我需要在客户端执行此操作,因为根据其中的数据量将该字节流发送到服务器可能需要长达20秒(这是一个很大的画布!)。更不用说之后检索图像......

那么,我该怎么做?

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

我也有一个很大的RaphaelJs画布,需要允许用户运行一个脚本,将大量画布保存为png图像。 我试图将我的raphael转换为svn,然后将我的svg转换为png,然后使用wget,但这当然不起作用,因为我的画布由javascript和wget生成无法处理。最后我意识到我可以让我的webapp只使用svg画布构建一个页面并使用phantomjs(一个无头浏览器)将其保存为png。它工作得很好。

就这么简单。 1.使用web应用程序仅使用svg画布构建页面。 2.使用以下代码创建svgToPgn.js文件:

  

var page = require('webpage')。create();   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

答案 2 :(得分:0)

  

我需要在客户端

执行此操作

那种要求会杀死你的机会。遗憾。

您无法做您想做的事情,您所拥有的最好的就是显示图像并告诉用户右键单击另存为。