快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

如何利用canvas实现图片压缩功能-创新互联

小编给大家分享一下如何利用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 编码,就是包括

如何利用canvas实现图片压缩功能

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实现图片压缩功能”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


名称栏目:如何利用canvas实现图片压缩功能-创新互联
本文网址:http://6mz.cn/article/ppjch.html

其他资讯