目前我的网站允许用户保存画布图像,但问题是需要很长时间。我将画布图像作为base64发送到我的php,它解码它并将其保存为我的服务器上的png图像。另外,我读过像base64解码一样,将图像大小增加了30%。有没有更好的方法需要更少的时间来保存画布图像?
答案 0 :(得分:3)
您可以通过将jpg指定为图像编码格式来缩小base64的大小(因此上传时间):
canvas.toDataURL('image/jpeg', 0.8);
你可以通过降低jpeg质量(从0.0 =>质量差到1.0 - >质量好)来进一步发展。
答案 1 :(得分:0)
我在我的一个项目上遇到了类似的速度问题而无法弄清楚如何解决这个问题而嘿皮埃尔,你给出的解决方案大大减少了图像数据的大小,但同时你会遇到问题此数据中保存的图像。我做了同样的事情,当我尝试用透明背景保存png图像时,我得到了意想不到的图像,有些变成了黑色。所以我坚持不使用canvas.toDataURL('image/jpeg', 0.8);
并仍在寻找其他选择。