您现在的位置是:首页 >学无止境 >Vue前端压缩图片后上传,拍照上传最佳实践网站首页学无止境
Vue前端压缩图片后上传,拍照上传最佳实践
简介Vue前端压缩图片后上传,拍照上传最佳实践
一、前言
最近有一个需求,通过手机拍照后上传图片到服务器,大家应该都知道,现在的手机像素实在是太高了,随便拍一张都是10M以上,直接上传到服务器一方面是浪费存储空间,另外就是特别浪费流量,如果网络不好还很慢。所以想寻求一种前端压缩图片的方案。

在网上找了很多方式效果都不好,要么是根本无法实现功能,要么就是兼容性不好。不过最终找到一个比较完美的插件。
点击可以直接到主页:shrinkpng,话不多说,现在直接讲解怎么使用。
本文基于Vue,VantUI,NPM进行演示。
二、使用shrinkpng进行图片压缩
2.1 安装依赖包
通过下面的命令将shrinkpng库添加到我们自己的项目
npm install shrinkpng
2.2 引入包
在需要的Vue文件中加入如下代码
import { shrinkImage } from "shrinkpng"
2.3 开始编码
在vantui里面使用到van-uploader组件, :before-read="beforeRead"是核心语句,在beforeRead方法里面进行图片的压缩。
<van-cell>
<van-uploader :after-read="onRead" :before-delete="beforeDelete" v-model="preImg" :before-read="beforeRead"/>
</van-cell>
beforeRead方法实现如下,其中file是一个文件对象,通过shrinkImage方法就能将这个文件进行压缩。
compressImg(file) {
return shrinkImage(file, {
quality: 15
});
},
beforeRead(file) {
return this.compressImg(file);
},
quality是压缩质量,1-100之间.通过我自己的项目情况,配置为15基本上就能满足我的要求。将10M+的图片基本上压缩到1M以内。
总结
以上就是今天要讲的内容,本文介绍了Vue前端压缩图片后上传,拍照上传最佳实践,很多时候走了很多弯路都行不通,不过探索的过程还是很美好。希望本篇关于shrinkpng的使用能够提供给有需要的小伙伴。
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。





U8W/U8W-Mini使用与常见问题解决
QT多线程的5种用法,通过使用线程解决UI主界面的耗时操作代码,防止界面卡死。...
stm32使用HAL库配置串口中断收发数据(保姆级教程)
分享几个国内免费的ChatGPT镜像网址(亲测有效)
Allegro16.6差分等长设置及走线总结