您现在的位置是:网站首页>列表内容
利用canvas实现图片压缩的示例代码html5使用canvas压缩图片的示例代码Canvas与图片压缩的示例代码html5 canvas移动浏览器上实现图片压缩上传canvas压缩图片以及卡片制作的方法示例
2021-08-31 14:45:14
1008人已围观
简介 这篇文章主要介绍了利用canvas实现图片压缩的示例代码的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
项目中做身份证识别时,需要传送图片的 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'); }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
点击排行
![](http://img.jbzj.com/file_images/game/201408/20140826103034119.png)
- DNF历年盒子宠物属性大全 8.21盒子更新齐聚一堂_网络游戏_游戏攻略_
- qq炫舞夺宝奇兵活动及玩法详细介绍_网络游戏_游戏攻略_
- 魔兽世界6.0制皮裁缝考古烹饪副职业改动_网络游戏_游戏攻略_
- 魔兽世界6.0要塞系统大型建筑综合攻略_网络游戏_游戏攻略_
- LOLS4赛季什么时候结束 S4赛季结束时间介绍_网络游戏_游戏攻略_
- LOL纳尔来袭踩楼赢点券活动地址 踩楼赢点券活动介绍_网络游戏_游戏攻略_
- 剑灵新手偷懒小技巧_网络游戏_游戏攻略_
- LOLS4比赛门票购买地址 S4总决赛各赛段门票价格和出售时间介绍_网络游戏_游戏攻略_
- 最终幻想14推出充值返利活动 达到条件即送坐骑和宠物_网络游戏_游戏攻略_
本栏推荐
![](http://img.jbzj.com/file_images/game/201408/20140826103034119.png)
-
DNF历年盒子宠物属性大全 8.21盒子更新齐聚一堂_网络游戏_游戏攻略_
-
qq炫舞夺宝奇兵活动及玩法详细介绍_网络游戏_游戏攻略_
-
魔兽世界6.0制皮裁缝考古烹饪副职业改动_网络游戏_游戏攻略_
-
魔兽世界6.0要塞系统大型建筑综合攻略_网络游戏_游戏攻略_
-
LOLS4赛季什么时候结束 S4赛季结束时间介绍_网络游戏_游戏攻略_
-
LOL纳尔来袭踩楼赢点券活动地址 踩楼赢点券活动介绍_网络游戏_游戏攻略_
-
剑灵新手偷懒小技巧_网络游戏_游戏攻略_
-
LOLS4比赛门票购买地址 S4总决赛各赛段门票价格和出售时间介绍_网络游戏_游戏攻略_
-
最终幻想14推出充值返利活动 达到条件即送坐骑和宠物_网络游戏_游戏攻略_