从品牌网站建设到网络营销策划,从策略到执行的一站式服务
小编给大家分享一下如何利用canvas实现图片压缩功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
成都创新互联公司主营伊吾网站建设的网络公司,主营网站建设方案,app软件开发公司,伊吾h5小程序开发搭建,伊吾网站营销推广欢迎伊吾等地区企业咨询项目中做身份证识别时,需要传送图片的 base64 格式编码,但是手机拍摄的照片都太大了,转成 base64 简直可怕,因此找了一下解决办法
涉及到的知识点
onchange 事件是在上传完文件之后触发
使用 files 属性获取到上传的文件对象
readAsDataURL 用于转换成 base64 编码
区分 canvas 的 画布 和 绘画环境:
画布:对应代码中的 cvs,可以设置画布 width,height;
绘画环境:对应代码中的 ctx ,可以设置 fillStyle,fillRect 等;
使用 canvas 自带的 drawImage() 方法将图片画到 canvas 上
想取到压缩后图片的 base64 可以使用 canvas 自带的 toDataURL() 方法
完整代码
Document
800×449,544KB
400×224,157KB
关于压缩后的图片大小
这里提供一个开箱即用的方法,baseStr 是一个 完整的 Base64 编码,就是包括
base64
代码:
function calcBase(baseStr){ var tag = 'base64,'; baseStr = baseStr.substring(baseStr.indexOf(tag)+tag.length); var eqTagIndex = baseStr.indexOf('='); baseStr = eqTagIndex!=-1?baseStr.substring(0,eqTagIndex):baseStr; var strLen = baseStr.length; var fileSize = strLen - (strLen / 8) * 2; console.log("文件大小:" + (fileSize / 1024).toFixed(1) + 'KB'); }
以上是“如何利用canvas实现图片压缩功能”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图