将canvas元素上传到webserver / database?

时间:2010-08-28 19:44:26

标签: javascript html5 canvas

我正在寻找一种将canvas元素从Firefox上传到网络服务器或数据库的好方法,以便以后能够重新加载它。

我的想法: 1.我的第一个想法是使用getImageData()并将画布作为ImageData对象保存到数据库中,但这可能不是一个好的解决方案,因为这些objets可能会变得非常大。 2.第二个想法是使用Flash / Javascript方法将画布作为PNG上传到网络服务器。

您对这些方法有任何意见或者可能有其他好的解决方案吗?

2 个答案:

答案 0 :(得分:0)

我不太确定我会担心尺寸,除非图像通常是> 10 mb大小。这真的是一个问题吗?

如果没有,使用getImageData()将是最实用和最简单的方法IMO。

答案 1 :(得分:0)

Canvas元素有一个toDataURL函数,它将画布上的图像序列化为PNG,编码为data URL。您可以使用表单(通过将隐藏的输入元素的值设置为数据URL)或使用AJAX在后台发布图像。

您应该知道,如果画布不是“origin-clean”,toDataURL(或任何其他获取像素数据的方法)将抛出安全异常。例如,如果您使用其他域中的图片调用drawImage,则无法再使用toDataURLgetImageData函数。