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编码 是 ...
最新文章
- 【Cocosd2d实例教程五】Cocos2d添加虚拟摇杆控制器
- js获取浏览器活跃页面,切换tab页状态
- 70%的付费率 手游还在愁什么?
- Screen返回选择界面的问题
- 转:openTSDB 2.0 安装
- JVM运行时数据区分析
- JAVA数据结构与算法【队列、数组模拟(环形)队列】
- dotNET Core 3.X 使用 Autofac 来增强依赖注入
- Android之UI线程与子线程交互设计的5种方法
- 中职升高职c语言程序设计教程课后答案,中职C语言教学创新与实践论文
- cookie和session(1)
- 1000道Python题库系列分享19(81道填空判断题)
- python微信公众菜单_Python实现微信公众平台自定义菜单实例
- 沉寂了多年金价为何会连续上涨 专家指出真正原因
- Oracle连续排名,oracle不连续排名rank() over(order by column desc),连续排名 dense_rank over(order by)...
- 机器人避障技术解读 与解决方案
- T-SNE可视化实现
- Linux mysql 主从 配置
- ROS中使用protoBuf通信
- ipa 上传卡在鉴权_上传app,一直卡在“正在通过 App Store 进行鉴定”
热门文章
- 笔记本空格键没弹性了
- 早期RA的缓解率—比较新缓解标准和与现有标准
- 转载:神国中的两条路(陈鸽)
- 【vue双向绑定原理浅析】
- endnote .enw format 文件格式说明
- LibGDX_7.2: 音频(Audio): 音乐(Music) 与 音效(Sound)
- [ubuntu]用SSH实现ubuntu系统互联并传输文件(无图形界面)
- word转成pdf后,目录不能跳转
- DIN22 IPO OC双输入双输出单电源供电光电隔离转换器 输入/输出 3000VDC 五隔离 实现正负双向信号的隔离传输
- java Object类型的参数