2012-02-23 55 views
4

我在页面上有一个画布元素。我调用canvas.toDataURL(),现在有一个处理它的图像数据。从canvas.toDataURL客户端触发下载?

我是否需要将此数据发布到服务器,让我的服务器使用该数据构造文件流,然后将我的文档的位置设置为返回的文件流?似乎是一个很大的开销时,我有我所有的数据客户端...

回答

1

当然,退房Canvas2Image.js

// returns an <img> element containing the converted PNG image 
var oImgPNG = Canvas2Image.saveAsPNG(oCanvas, true);  

// returns an <img> element containing the converted JPEG image (Only supported by Firefox) 
var oImgJPEG = Canvas2Image.saveAsJPEG(oCanvas, true); 

// returns an <img> element containing the converted BMP image 
var oImgBMP = Canvas2Image.saveAsBMP(oCanvas, true); 

内部所有它做的是Base64编码的数据和呼叫document.location.href = base64EncodedData;

+0

如何设置文件名? – 2013-12-13 23:48:17

+0

即使不到一岁,我的答案也很老派。查看这个例子:http://html5-demos.appspot.com/static/a.download.html – Incognito 2013-12-16 19:56:35

0

你可以在DataURL设置为IMG ELEM

var plane = document.getElementsByTagName ("canvas")[0], 
ctx = plane.getContext("2d"), 
img = document.createElement("img"); 
ctx.fillRect (0,0,400,400); 
img.src = plane.toDataURL(); 
document.body.appendChild (img); 
当然老的

即不支持此