前端实现图片压缩上传功能

本文介绍了在移动端H5环境中,如何使用Vue框架结合canvas实现图片压缩上传。针对低版本机型上传图片慢甚至崩溃的问题,通过原生input上传图片,然后利用canvas的drawImage进行按比例重绘来压缩图片,最后将压缩后的图片进行上传。主要步骤包括:不指定input的文件类型以避免某些设备问题,以及利用canvas的drawImage方法进行尺寸限制,实现图片压缩。
摘要由CSDN通过智能技术生成

以移动端为例,在H5上传图片时,由于机型 / 网速 / 流量等限制,在低版本机型上经常会出现上传的图片太大导致上传很慢甚至崩溃的情况,所以需要对在某些情况下需要对上传的图片进行压缩上传。

以下以移动端使用Vue框架为例:

(以下主要实现思路来自张鑫旭大神的博客:?https://www.zhangxinxu.com/wordpress/2017/07/html5-canvas-image-compress-upload/

 

话不多说进入正题

第一步:使用原生input上传图片

<input type="file" class="file-btn" @change="changeImg($event)" />

上面这句代码中可以发现,我没有指定上传的文件的格式,因为在之前的开发过程中发现,input在设置了accpet=“image/*”之后,在某些低版本安卓机(微信浏览器)上,会出现上传jpeg格式的图片无法触发input的change的事件的情况,所以后来就把input的图片类型去掉了,验证文件类型在change事件触发后处理或者交由后端校验。

 

第二步:将图片利用canvas的drawImage进行按比例重绘

在接收到需要上传的图片之后&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值