vue图片压缩上传

前言

之前图片压缩是公司前辈留下的一个js方法,采用的回调函数处理。最近一个项目为了优化用户体验,在图片上传失败后要根据接口返回的状态值更改页面UI,此时该js方法就会出现异常,于是我找到了 image-conversion

安装

npm i image-conversion --save

或者

yarn add image-conversion

引入

import * as imageConversion from 'image-conversion'

或者

import {
   compress, compressAccurately} from 'image-conversion'

常用方法列表

compress

语法

compress(file, config){
   Promise(Blob)}

参数

名称 类型 描述
file File(Blob) 一个File(Blob)对象
config number or object 如果是数字类型,范围0-1,表示图像质量; 如果是对象类型,你可以传递参数给imagetoCanvas和dataURLtoFile方法;

举例

// number
imageConversion.compress(file,0.8)

// object
imageConversion.compress
Vue中实现图片压缩上传的方法如下: 1.引入插件:首先需要引入一个图片压缩上传的插件,例如`vue-image-compressor`。 2.安装插件:使用npm或yarn安装插件,命令如下: ``` npm install vue-image-compressor ``` 或 ``` yarn add vue-image-compressor ``` 3.导入插件:在需要使用的组件中导入插件,并注册到Vue实例中,示例代码如下: ```javascript import Vue from 'vue' import VueImageCompressor from 'vue-image-compressor' Vue.use(VueImageCompressor) ``` 4.编写模板代码:在组件模板中添加一个文件上传按钮,并绑定一个`@change`事件来处理文件选择,示例代码如下: ```html <template> <div> <input type="file" @change="handleFileUpload" /> </div> </template> ``` 5.编写处理方法:在组件的`methods`选项中编写处理文件上传的方法,首先获取选择的文件,然后使用插件提供的压缩方法进行压缩,最后使用压缩后的图片进行上传,示例代码如下: ```javascript methods: { handleFileUpload(event) { const file = event.target.files[0] this.$compressImage(file, { quality: 0.6, // 压缩质量,范围为0到1(可选,默认为0.6) maxWidth: 800, // 最大宽度(可选,默认为800) maxHeight: 800 // 最大高度(可选,默认为800) }) .then(compressedImage => { // 进行图片上传逻辑 }) .catch(error => { // 处理压缩失败的情况 }) } } ``` 在上述代码中,通过`this.$compressImage`来调用插件提供的压缩方法,传入的参数为选择的文件和一些可选的压缩参数。压缩成功后,会返回一个压缩后的图片,可以将其直接上传到服务器,或者进行其他的操作。 通过以上步骤,在Vue中实现了图片压缩上传的功能。注意,使用插件的具体使用方法可能会根据插件的不同而有所不同,请根据实际情况进行相应的调整。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值