【发布时间】:2012-03-22 08:19:59
【问题描述】:
完整代码也可以在这里找到:https://gist.github.com/1973726(jsfiddle 上的部分版本http://jsfiddle.net/VaEAJ/ 显然不能用 jsfiddle 运行 php)
我最初编写了一些代码,它采用了一个画布元素并将其保存为图像(请参阅此处的工作代码:https://gist.github.com/1973283),然后我对其进行了更新,以便它可以处理多个画布元素,但现在的主要区别在于图像数据通过 jQuery ajax 方法而不是通过隐藏的表单字段传递到我的 PHP 脚本。
问题是图像看起来是空白的。它们在生成时每个大约 200kb,因此它们显然有一些内容,但是当您预览图像时没有显示任何内容,当我尝试在 Adobe Fireworks 或其他照片应用程序中打开图像时,我无法打开文件。
图像数据似乎可以很好地传送到服务器,但我真的不知道为什么现在当我使用base64_decode 编写图像时,这意味着生成的图像将不再可见?我唯一能想到的是,也许通过 ajax 发布数据并没有发送所有数据,因此它正在生成图像,但它不是完整的内容,因此图像不完整(因此为什么照片应用程序可以'不要打开它)。
在 Firebug 中检查帖子数据时,提示已达到限制?不知道是不是这个问题?
【问题讨论】:
-
能否提供在您的代码中使用 jQuery ajax 的更新示例?
-
1) 由于跨域问题,我很惊讶它完全可以工作 2) 您似乎没有对 DATA URI 进行编码,在将数据传递给 jQuery 的 ajax 之前尝试
encodeURIComponent(newCanvas.toDataURL())方法。
标签: php javascript canvas html5-canvas