目前我的网站允许用户保存画布图像,但问题在于这需要很长时间。我将画布图像作为Base64发送到我的PHP进行解码,并将其保存为PNG图像在我的服务器上。此外,我已经了解到Base64解码会增加图像大小约30%。是否有更好的方法可以更快地保存画布图像?
目前我的网站允许用户保存画布图像,但问题在于这需要很长时间。我将画布图像作为Base64发送到我的PHP进行解码,并将其保存为PNG图像在我的服务器上。此外,我已经了解到Base64解码会增加图像大小约30%。是否有更好的方法可以更快地保存画布图像?
您可以通过指定jpg作为图像编码格式来减小base64的大小(因此减少上传时间):
canvas.toDataURL('image/jpeg', 0.8);
您可以通过降低JPEG图像的质量(从0.0 => 差质量到1.0 => 好质量)来进一步优化。
我在一个项目中遇到了类似的速度问题,无法解决。嘿,Pierre,你提供的解决方案大大减小了图像数据的大小,但同时你会面临从这些数据保存的图像出现问题。我也做了同样的事情,当我尝试保存带有透明背景的PNG图像时,得到了意外的图像,有些变成了黑色。因此,我坚持不使用canvas.toDataURL('image/jpeg', 0.8);
,仍在寻找其他替代方案。