简介(下载地址)
Ba-ImageCompressor 是一款uniapp简单快捷的图片压缩插件,仿微信朋友圈压缩策略。
- 支持批量压缩
- 支持设置不压缩的阈值,单位为K
- 支持返回压缩后图片大小,单位为B
效果与对比
内容 | 原图 | Ba-ImageCompressor | |
---|---|---|---|
截屏 720P | 720*1280,390k | 720*1280,87k | 720*1280,56k |
截屏 1080P | 1080*1920,2.21M | 1080*1920,104k | 1080*1920,112k |
拍照 13M(4:3) | 3096*4128,3.12M | 1548*2064,141k | 1548*2064,147k |
拍照 9.6M(16:9) | 4128*2322,4.64M | 1032*581,97k | 1032*581,74k |
滚动截屏 | 1080*6433,1.56M | 1080*6433,351k | 1080*6433,482k |
效果截图
使用方法
引用
在 script
中引入组件
const imageCompressor = uni.requireNativePlugin('Ba-ImageCompressor')
示例
可在页面 script
中调用(示例参考,可根据自己业务和调用方法自行修改)
methods: {
imageCompress() {//压缩
console.log(this.path)
console.log(this.outputPath)
imageCompressor.compress({
path: this.path, //原始图片路径(单张)
paths: this.paths,//原始图片路径(批量,也可以单张)
},
(ret) => {
console.log(ret)
if (ret.outputPath) {
this.outputPath = ret.tempFiles[0].path;
this.outputSize = this.formatSize(ret.tempFiles[0].size);
//this.outputPath = ret.outputPath;//单张
//this.outputSize = this.formatSize(ret.outputSize);//单张
}
});
},
formatSize(size, unit = "B") {
let s = size;
while (s > 1024) {
s = (s / 1024).toFixed(1);
switch (unit) {
case "B":
unit = "kb"
break;
case "kb":
unit = "M"
break;
case "M":
unit = "G"
break;
}
}
return s + unit;
}
}
方法清单
名称 | 说明 |
---|---|
onCompress | 图片压缩 |
onCompress 方法参数
图片压缩
属性名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
path | String | true | ‘’ | 原图片路径 |
paths | String | true | ‘’ | 原图片路径(多张) |
ignoreBy | Number | false | 100 | 不压缩的阈值,单位为K,默认100 |
返回参数
属性名 | 类型 | 说明 |
---|---|---|
outputPath | String | 压缩后图片路径 |
outputSize | Number | 压缩后图片大小,单位为B |
tempFiles | Array | 多张压缩返回,属性有 path:路径,size:大小 |
系列插件
应用未读角标插件 Ba-Shortcut-Badge (文档)
扫码原生插件(毫秒级、支持多码)Ba-Scanner-G(文档)
扫码原生插件 - 新(可任意自定义界面版本;支持连续扫码;支持设置扫码格式)Ba-Scanner(文档)
动态修改状态栏、导航栏背景色、字体颜色插件 Ba-AppBar(文档)
安卓快捷方式(桌面长按app图标) Ba-Shortcut(文档)
视频压缩、视频剪辑插件 Ba-VideoCompressor(文档)
最接近微信的图片压缩插件 Ba-ImageCompressor(文档)
动态切换应用图标、名称(如新年、国庆等) Ba-ChangeIcon(文档)