我正在寻找一种将 canvas 元素从 Firefox 上传到网络服务器或数据库以便稍后重新加载它的好方法。
我的想法: 1. 我的第一个想法是使用 getImageData() 并将 Canvas 作为 ImageData 对象保存到数据库中,但这可能不是一个好的解决方案,因为这些对象可能会变得非常大。 2. 第二个想法是使用 Flash/Javascript 方法将 Canvas 作为 PNG 上传到网络服务器。
您对这些方法有什么意见或者有其他好的解决方案吗?
最佳答案
Canvas 元素有一个 toDataURL
将 Canvas 上的图像序列化为 PNG 的函数,编码为 data URL .您可以使用表单(通过将隐藏输入元素的值设置为数据 URL)或使用 AJAX 在后台发布图像。
你应该知道 toDataURL
(或获取像素数据的任何其他方法)如果 Canvas 不是“原始干净”的,将引发安全异常。例如,如果您曾调用 drawImage
使用来自不同域的图像,您不能再使用 toDataURL
或 getImageData
功能。
关于javascript - 将 Canvas 元素上传到网络服务器/数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3592164/