tt.compressImage收藏我的收藏
收藏
我的收藏基础库 1.28.0 开始支持本方法,这是一个异步方法。
压缩图片接口,可选压缩质量,并可以产出压缩后的图片到本地临时文件。仅对 jpg 格式图片有效。
前提条件 | 无 |
业务背景 | 无 |
使用限制 | 无 |
注意事项 | 无 |
支持沙盒 | 否 |
相关教程 | 无 |
语法
tt.compressImage(options)
参数说明
options 为 object 类型,属性如下:
属性名 | 类型 | 默认值 | 必填 | 说明 | 最低支持版本 |
---|---|---|---|---|---|
quality | number | 80 | 否 | 压缩质量,范围 0 ~ 100,数值越小,质量越低,压缩率越高 | 1.28.0 |
src | string | array | 是 | 图片路径 | 1.28.0 | |
success | function | 否 | 接口调用成功的回调函数 | 1.28.0 | |
fail | function | 否 | 接口调用失败的回调函数 | 1.28.0 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行 ) | 1.28.0 |
src 参数说明
src 可以是本地路径、代码包相对路径,但不支持网络图片。基础库 2.48.0 版本之后,支持传入路径数组,批量压缩图片。当批量压缩时:
- 如果批量压缩全部失败,会进入 fail 回调。
- 如果批量压缩部分压缩成功、部分压缩失败,则会进入 success 回调,压缩失败的图片返回空字符串。
回调成功
object 类型,属性如下:
属性名 | 类型 | 说明 | 最低支持版本 |
---|---|---|---|
errMsg | string | "compressImage:ok" | 1.28.0 |
tempFilePath | string | array | 压缩完成后的文件的临时路径 | 1.28.0 |
回调失败
object 类型,属性如下:
属性名 | 类型 | 说明 | 最低支持版本 |
---|---|---|---|
errMsg | string | "compressImage:fail" + 详细错误信息 | 1.28.0 |
错误码
errorCode | errMsg | errorType | 说明 | 最低支持版本 |
---|---|---|---|---|
112199 | params src is requiredsrc is invalidparams src type is not string type | D | src 为空src 传入单个不存在的路径,或不支持http://、https://开头的图片资源参数 src 不是 string 类型,或 src 数组内容不是 string 类型 | 1.28.0 |
112105 | sandbox is nil | F | 小程序框架内部错误,有需要请拉客服咨询 | 1.28.0 |
112104 | batch compress images fail | D | 批量压缩失败 | 1.28.0 |
112103 | permission denied, read {filePath} | D | 传入了非法路径 | 1.28.0 |
112101 | no such file or directory {filePath} | D | 传入了不存在的路径 | 1.28.0 |
112102 | decode image fail | D | 传入的路径非图片解码失败,文件格式错误等 | 1.28.0 |
112106 | compress image fail | F | 小程序框架内部错误,有需要请拉客服咨询 | 1.28.0 |
112107 | write image to file fail | F | 小程序框架内部错误,有需要请拉客服咨询 | 1.28.0 |
112199 | params src is required | D | 参数src不能为空 | 1.28.0 |
112199 | params src type is not string type | D | 参数src不是 string 类型,或src数组内容不是 string 类型 | 1.28.0 |
112191 | Internal error: cause: $cause, errMsg: $extraMsg | F | 小程序框架内部错误,有需要请拉客服咨询 | 1.28.0 |
扫码体验
请使用字节宿主APP扫码
代码示例
<!-- index.ttml --> <view class="wrap"> <button type="primary" bindtap="compressImage">点击选择图片压缩</button> <view>压缩前:</view> <image class="image" src="{{oldSrc}}"></image> <view>压缩后:</view> <image class="image" src="{{newSrc}}"></image> </view>
// index.js Page({ data: { oldSrc: "", newSrc: "", }, compressImage() { tt.chooseImage({ success: (res) => { this.setData({ oldSrc: res.tempFilePaths[0], }); tt.compressImage({ src: res.tempFilePaths[0], quality: 80, success: (res) => { tt.showToast({ title: "压缩成功" }); this.setData({ newSrc: res.tempFilePath, }); }, fail: (err) => { tt.showModal({ title: "压缩失败", content: err.errMsg, showCancel: false, }); }, complete: (res) => { console.log("压缩完成"); }, }); }, fail: (err) => { tt.showModal({ title: "选择图片失败", content: err.errMsg, showCancel: false, }); }, }); }, });
点击纠错