ll-compress-img
介绍:
图片压缩 图片格式转换🙂
支持小程序、app、H5
效果比官方uni.compressImage好,目前没测出bug
可限制图片大小 同时处理多张图片
基于canvas组件,借用了uv组件进行展示
起因:
最近用uniapp多端开发时,发现使用uni.compressImage有很多bug,就开发了这个组件。
效果:
对比:
官方方法缺点:
1.不支持H5
2.微信小程序有bug,开发者工具里图片没有后缀
3.多次压缩可能会报错
4.压缩效果差
本组件:
1.兼容性强
2.效果好
3.延展性强
4.功能多
5.支持小程序格式转换
(我就是没有找到合适方法在小程序端转换图片格式才开发这个组件的)
食用方法:
组件下载地址:https://ext.dcloud.net.cn/plugin?id=17689
一.在<template>添加<ll-compress-img>组件,并设置ref 例:<ll-compress-img ref="abc1"></ll-compress-img>
二.使用时直接调用组件内方法
1.格式转换/图片处理
this.$refs.abc1.process_img 参数(src,quality = 0.9,type = 'jpg',ratio = 1)图片地址,质量,转换后图片类型,比例
2.批量格式转换
this.$refs.abc1.multiple_format_img 参数(list,quality = 0.9,type = 'jpg',ratio = 1)图片地址列表,质量,转换后图片类型,比例
3.图片压缩
this.$refs.abc1.compress_img 参数(src,size = 500,type,ratio = 0.9)图片地址,压缩后最大大小(单位:KB),压缩后图片类型(h5还支持webp等格式),比例
4.批量图片压缩
this.$refs.abc1.multiple_compress_img 参数(list,size = 500,type,ratio = 0.9)图片地址,压缩后最大大小(单位:KB),压缩后图片类型(h5还支持webp等格式),比例
三.用.then和.catch获取返回值
format_img和compress_img返回图片地址
multiple_format_img和multiple_compress_img返回图片地址列表
注意:
1.同一页面只能使用一个<ll-compress-img>组件
2.压缩时比例不要设置为1,否则可能会导致压缩失败
3.比例越小压缩越快,但质量可能参差不齐
4.h5使用不一样压缩方式,速度更快
5.输入格式支持jpg、png、gif,输出格式支持jpg、png、(H5支持webp等格式,具体未知)