我正在寻找一种将canvas元素从Firefox上传到网络服务器或数据库的好方法,以便以后能够重新加载它。
我的想法: 1.我的第一个想法是使用getImageData()并将画布作为ImageData对象保存到数据库中,但这可能不是一个好的解决方案,因为这些objets可能会变得非常大。 2.第二个想法是使用Flash / Javascript方法将画布作为PNG上传到网络服务器。
您对这些方法有任何意见或者可能有其他好的解决方案吗?
答案 0 :(得分:0)
我不太确定我会担心尺寸,除非图像通常是> 10 mb大小。这真的是一个问题吗?
如果没有,使用getImageData()
将是最实用和最简单的方法IMO。
答案 1 :(得分:0)
Canvas元素有一个toDataURL
函数,它将画布上的图像序列化为PNG,编码为data URL。您可以使用表单(通过将隐藏的输入元素的值设置为数据URL)或使用AJAX在后台发布图像。
您应该知道,如果画布不是“origin-clean”,toDataURL
(或任何其他获取像素数据的方法)将抛出安全异常。例如,如果您使用其他域中的图片调用drawImage
,则无法再使用toDataURL
或getImageData
函数。