使用Javascript减少base64图像内存大小
Reducing base64 image memory size using Javascript
我使用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之间,将被视为表示图像质量;如果第二个参数是其他参数,则使用图像质量的默认值。其他参数将被忽略。
相关文章:
- Javascript图像数组预加载速度和从内存中删除
- 加载图像时内存泄漏
- Javascript内存游戏-图像交换
- 在消耗大量内存后,浏览器在创建图像Blob的ObjectURL时抛出错误
- 使用计时器上的图像构建内存
- 正在开发内存匹配游戏 - 您能否以不同的方式显示一张图像
- 将许多新图像绘制到画布时内存泄漏
- 如何在不在“视图中”时卸载图像以节省内存
- 快速替换图像 src 时 Firefox 中的内存使用情况
- 输入中带有base64编码图像的POST的Chrome内存泄漏 - 如何解决
- iOS在画布上绘制图像显示:无会导致内存泄漏
- 想要使用 html5 的画布优化捕获的图像调整大小和旋转的代码,现在在移动设备上发出内存不足警告
- 使用数据URI快速更新图像会导致缓存、内存泄漏
- 如何在使用js/jquery加载图像后获得图像大小(内存)
- 是否可以加载图像,在内存中缩放它并将其分配为背景图像的 uri
- 浏览器何时将图像加载到工作内存中
- 管理屏幕外图像的内存
- 在iPad2上的Safari中动态加载图像会导致内存泄漏
- 我可以使用node-gm在内存中调整图像的大小,还是我需要先保存它
- 如何使JavaScript函数使用更少的内存(图像在后台旋转)