项目中上传头像base64图片太大导致上传时间过长,或者后台奔溃问题,所以前端压缩base64大小解决这个问题
原理使用canvas进行图片压缩
参数说明:
base64String:需要压缩的base64图片
w: 图片的原始图片大小
quality: 0.7 // 值越小,所绘制出的图像越模糊

示例:let base64Img = this.compressImg(file.content, 100, 0.7);
base64Img就是压缩完成后的base64图片


compressImg(base64String, w, quality) {var getMimeType = function(urlData) {var arr = urlData.split(",");var mime = arr[0].match(/:(.*?);/)[1];return mime;};var newImage = new Image();var imgWidth, imgHeight;var promise = new Promise(resolve => (newImage.onload = resolve));newImage.src = base64String;return promise.then(() => {imgWidth = newImage.width;imgHeight = newImage.height;var canvas = document.createElement("canvas");var ctx = canvas.getContext("2d");if (Math.max(imgWidth, imgHeight) > w) {if (imgWidth > imgHeight) {canvas.width = w;canvas.height = (w * imgHeight) / imgWidth;} else {canvas.height = w;canvas.width = (w * imgWidth) / imgHeight;}} else {canvas.width = imgWidth;canvas.height = imgHeight;}ctx.clearRect(0, 0, canvas.width, canvas.height);ctx.drawImage(newImage, 0, 0, canvas.width, canvas.height);var base64 = canvas.toDataURL(getMimeType(base64String),quality);console.log(base64);return base64;});}

压缩base64图片大小相关推荐

  1. 如何压缩动态图片大小?gif图太大了怎么压缩?

    对于新媒体行业人员来说,平时在工作中需要存非常多的素材,这些素材中有很多就是gif格式的,随着积累的素材越来越多,这些素材会占用大量的储存空间,那么遇到这种情况应该怎么办呢?应该如何压缩动态图片大小? ...

  2. 怎么压缩gif图片大小?如何压缩gif又不影响画质

    上传平台或传输gif动图时,经常遇到gif图片过大无法使用的情况.有没有一个办法既能缩小gif图片大小还能保持画质不受影响呢?推荐大家一款gif压缩工具-压缩啦,一键即可在线压缩gif图片大小. 1. ...

  3. 怎样在线压缩JPEG图片大小?

    在日常生活工作中,大家保存图片的时候,都会看到有JPG.JPEG.png等文件名格式,JPG和png格式相信大家都非常熟悉了,和JPG相似JPEG是什么格式呢,它也是一种最常用的图像文件格式,那碰到J ...

  4. 如何压缩jpg图片大小?怎么在线jpg图片压缩?

    如何压缩jpg图片大小?使用压缩图的jpg图片压缩(https://www.yasuotu.com/jpg)功能,无需下载任何软件完成jpg压缩大小,方便又快捷,一起来看看具体步骤吧. 1.使用浏览器 ...

  5. 如何压缩png图片大小?

    png这种图片格式大家应该都熟悉吧?,跟jpg格式有着同样高的使用率.只不过png图片偏于专业化,而jpg更具平常性.举个不恰当的例子Jpg格式就好比相当于口语,而png格式相当于比较正式的书面用语的 ...

  6. 怎样在线压缩png图片大小?将这个压缩方法分享给大家

    在日常的办公和生活中,我们经常会使用到很多图片,比如:png图片,因为图片格式的属性比jpg格式图片存储空间大,不仅图片文件传输速度慢,而且在上传平台时就会因图片过大导致上传失败,给工作上带来不便.如 ...

  7. 怎样在线压缩gif图片大小?电脑上如何压缩动图?

    GIF动图是一种使用非常广泛的图片格式,我们平时聊天时候使用的动态表情包一般就是gif格式的,与静态图片相比,GIF动图是由多帧构成的,因此体积一般也会比静态图片大很多,所以在使用的时候难免会遇到GI ...

  8. js压缩base64图片的方法

    话不多说,直接上代码. function compressImage(base64, callback) {var targSize = 1024 * 1024 //1024KB if (base64 ...

  9. 如何压缩jpg图片大小

    平时我们经常会遇到上传图片时,图片太大而无法完成上传的情况,对于不是专业的设计者,用PS等软件又显得太麻烦,而且很反锁:那如果图片太大该如何是好呢?这里小编来分享下我平时不想打开PS,又快速简单的压缩 ...

  10. jpg图片怎么改大小kb?如何压缩jpg图片大小?

    JPG图片由于其兼容性比较高,因此在网络上应用的也非常广泛,但是我们在使用一些高清图片素材的时候经常遇到图片体积太大无法上传的情况,那么这时就需要将图片压缩后再进行使用了,今天来给大家分享一款jpg图 ...

最新文章

  1. pandas使用split函数将dataframe中的特定列表字段(list column)裂变为多个数据列并拼接到原dataframe中
  2. python常用标准库有哪些-Python 常用的标准库以及第三方库有哪些?
  3. 【EventBus】EventBus 源码解析 ( 注册订阅者总结 | EventBus 注册订阅者流程梳理 )
  4. java timer 线程安全_多线程之 线程安全与控制
  5. java基础-泛型举例详解
  6. 同步服务老是报错_悬而未决:MYSQL配置好主从同步后没有报错,但数据一直没有同步过来是什么原因? | 学步园...
  7. SQLServer链接服务器至Oracle
  8. React开发(281):一定是路由错误
  9. java f.lenth返回值_long length
  10. Pytorch BatchNorm
  11. [qq机器人]nonebot2 群管插件2.0
  12. 小米路由器4a千兆版修改sn和关闭电源led灯
  13. js正则大于0小于100_js正则表达式大于0的正整数,小数可以有,...
  14. 近期DDG挖矿病毒防护与分析
  15. 任意装修、在线DIY定制商城系统,跟紧时代的潮流
  16. 心情就像这多雨的天......
  17. 服务启动时,报Command line is too long异常
  18. 学术期刊会议相关碎碎念
  19. selenium中的三种等待方式以及显示等待和隐式等待区别
  20. matlab 实现完整的正弦波信号发生器

热门文章

  1. power apps 里 嵌套 html
  2. Word中插入分隔线
  3. PVE7.2 显示CPU温度和频率
  4. 用C#实现将大写日期(年/月/日)转化为小写日期(阿拉伯数字的)
  5. android smb同步,SMBsync安卓下最好的同步备份工具
  6. 用Python制作我的核酸检测日历
  7. Arduino入门教程--连载
  8. 老虎证券开放api常用常量
  9. SharePoint 2016 Beta 2 使用体验
  10. 使用easypoi导出excel设置表头样式