使用Javascript减少base64图像内存大小

Reducing base64 image memory size using Javascript

本文关键字:内存 图像 base64 Javascript 减少 使用      更新时间:2023-09-26

我使用canvas.toDataURL()并以base64格式获取图像。但是,在将图像上传到服务器之前,我可以将图像的内存大小减少到10KB吗?我如何使用JavaScript或jquery做到这一点?我使用的代码是:

var context = canvas.getContext("2d");
context.drawImage(imageObj, c.x, c.y, c.w, c.h, 0, 0, canvas.width, canvas.height);
var vData = canvas.toDataURL();

如果您想压缩字符串,您可以尝试这里提到的一种压缩算法,但是DataURL已经被相当地压缩了,所以这应该不会有太大的区别。

另一个选择是使用toDataURL的第二个参数来指定JPG的质量,这个参数通常可以安全地降低,而不会对图像质量产生明显的影响。

如果请求的类型是image/jpeg或image/webp,那么第二个参数,如果介于0.0和1.0之间,将被视为表示图像质量;如果第二个参数是其他参数,则使用图像质量的默认值。其他参数将被忽略。