JavaScript压缩base64图片
dealImage(base64, callback) {var newImage = new Image();var quality = 0.6; //压缩系数0-1之间newImage.src = base64;newImage.setAttribute("crossOrigin", 'Anonymous'); //url为外域时需要var imgWidth, imgHeight;newImage.onload = function () {imgWidth = this.width;imgHeight = this.height;var canvas = document.createElement("canvas");var ctx = canvas.getContext("2d");if (Math.max(imgWidth, imgHeight) > 120) {if (imgWidth > imgHeight) {canvas.width = 120; // 设置压缩宽度大小canvas.height = 120 * imgHeight / imgWidth;} else {canvas.height = 120;canvas.width = 120 * imgWidth / imgHeight;}} else {canvas.width = imgWidth;canvas.height = imgHeight;quality = 0.6;}ctx.clearRect(0, 0, canvas.width, canvas.height);ctx.drawImage(this, 0, 0, canvas.width, canvas.height);var base64 = canvas.toDataURL("image/jpeg", quality); //压缩语句// 如想确保图片压缩到自己想要的尺寸,如要求在5-10kb之间,请加以下语句,quality初始值根据情况自定while (base64.length / 1024 > 10) {quality -= 0.01;base64 = canvas.toDataURL("image/jpeg", quality);}// 防止最后一次压缩低于最低尺寸,只要quality递减合理,无需考虑while (base64.length / 1024 < 5) {quality += 0.001;base64 = canvas.toDataURL("image/jpeg", quality);}callback(base64);//必须通过回调函数返回,否则无法及时拿到该值}},
JavaScript压缩base64图片相关推荐
- js压缩base64图片的方法
话不多说,直接上代码. function compressImage(base64, callback) {var targSize = 1024 * 1024 //1024KB if (base64 ...
- 文件压缩 - JavaScript/CSS/HTML/图片
1.应用场景 主要用于前端静态文件压缩, 最小化,减少内容传输耗时,优化前端性能. 2.学习/操作 文档阅读: http://www.webkaka.com/blog/archives/html-co ...
- JS将base64图片压缩至指定大小
base64图片压缩至指定大小 在开发中,通常在上传图片时,由于各种限制,需要将上传的图片压缩到某一大小范围内才能上传.在此提供以下方法实现该需求,复制可用. /*** 压缩图片到指定大小* @par ...
- javascript将base64编码的图片数据转换为file并提交
2019独角兽企业重金招聘Python工程师标准>>> 直接提交base64编码图片数据,过大的话后台会出现转发错误问题. 一个不错的解决方式就是将base64编码的图片数据转换为B ...
- JavaScript 正则匹配字符串中 base64 图片
通常,富文本编辑器中的图片插入后上传到服务器保存,提交到数据库的富文本内容只包含图片的http地址. 但是,提交时候也需要做一下正则校验,避免有时候由于图片上传服务器失败而直接保存base64 格式图 ...
- 用JS实现:图片压缩、图片加密
本文将用JavaScript实现两个颇有技术含量的功能:图片压缩.图片加密. 最终效果:可实现将任意图片加密.压缩,并保存到一个独立的html页面中,输入正确的密码,才能看到原图. 第一步.压缩图片 ...
- JavaScript中的图片处理与合成(一)
JavaScript中的图片处理与合成(一) 引言: 图片处理现在已经成为了我们生活中的刚需,想必大家也经常有这方面的需求.实际前端业务中,也经常会有很多的项目需要用到图片加工和处理.由于过去一段时间 ...
- HTML img 元素无法显示 base64 图片的可能原因
如果使用 base64 编码的图片在 HTML 的 img 元素中无法显示,可能有以下几个原因: 1.语法错误:img 元素中的 src 属性必须以 "data:" 开头,后面跟着 ...
- android 图片转base64内存变大了_开发者最喜爱的图片编码格式:opencv编码,解码,显示base64图片...
由于图片格式尺寸较大,在互联网上若想传递一张图片,往往会 把图片进行格式转换,然后进行数据传输,图片格式往往会转换为base64编码图片 base64编码图片 BASE64编码表 base64编码 是 ...
最新文章
- mysql客户端如何创建用户_mysql的创创建用户阶段 开启客户端登录和授权阶段
- 自定义android控件EditText 自定义边框 背景
- Java IO模型--BIO、NIO Single Thread、NIO Reactor、AIO单线程及多线程AIO
- Swoole安装popen()找不到
- 通过OData创建C4C Lead时,遇到Account missing的错误消息
- 算法学习:最近公共祖先
- BZOJ 3039: 玉蟾宫( 悬线法 )
- 栈的应用--数制转换
- 管理感悟:工作管理的两大要点
- 镇魂街武神躯怎么修改服务器,镇魂街武神躯怎么重置守护灵_守护灵重置方法_3DM手游...
- 8、网友问答之串口数据接收与数据强制转换---------labview宝典
- 安卓逆向015之JEB静态分析与动态调试(注册机)
- 北大飞跃手册_【通知】关于转发吉林大学大学生飞跃社团2020年吉林大学飞跃手册预发布会即将召开!...
- 一周极客热文:看马云李彦宏马明哲等大佬手绘未来图
- C/C++犯二程度计算
- Java面试题大全(part_4)
- 海致大数据京信_2018华为全联接大会|海致网聚提出公安大数据个人计算新理念...
- 贪心算法---Huffman编码---神秘电报密码
- 窗口根据屏幕分辨率自动调整大小
- 包过滤防火墙配置举例