javascript - 将 Canvas 元素上传到网络服务器/数据库?

标签 javascript html canvas

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

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

您对这些方法有什么意见或者有其他好的解决方案吗?

最佳答案

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

你应该知道 toDataURL (或获取像素数据的任何其他方法)如果 Canvas 不是“原始干净”的,将引发安全异常。例如,如果您曾调用 drawImage使用来自不同域的图像,您不能再使用 toDataURLgetImageData功能。

关于javascript - 将 Canvas 元素上传到网络服务器/数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3592164/

相关文章:

javascript - 仅使用 isRowHiddenByFilter 或 isRowHiddenByUser 获取 Google App Script getRange 的未过滤值

javascript三元操作器根据条件填充变量

javascript - ChartJs - 从后端动态显示数据

javascript - Canvas 游戏 : My food disappears

html - max-width 对多行 flexbox 的 child 应该有什么影响?

Javascript,显示透明图像。

javascript - 在解析 object.save();不返回任何东西,为什么?

javascript - NodeJS SQL登录错误(ERR_HTTP_HEADERS_SENT] : Cannot set headers after they are sent to the client)

html - 在打印 View 中无法获取我的自定义 CSS (ctrl + p)

html - 需要了解如何使用 firebase 构建博客