swan.compressImage

基础库 3.110.3开始支持,低版本需做兼容处理。在工具和真机中的实现有区别,详见API 实现差异

解释:压缩图片接口,可选压缩质量

Web 态说明:该 API 在 Web 态暂不支持,使用前请判断是否存在。

# 方法参数

Object object

# object参数说明 :

属性名 类型 必填 默认值 说明
src String 图片的路径,可以是相对路径、临时文件路径或存储文件路径
quality Number 80 压缩质量,仅对jpg有效;范围0~100,数值越小,质量越低,压缩率越高。
success Function 接口调用成功的回调函数
fail Function 接口调用失败的回调函数
complete Function 接口调用结束的回调函数(调用成功、失败都会执行)

# success返回参数说明 :

参数 类型 说明
tempFilePath String 压缩后图片的临时文件路径示例代码

# 示例

在开发者工具中预览效果

# 扫码体验

请使用百度APP扫码

# 图片示例

# 代码示例

  • 在 js 文件中
Page({
    data: {
        oldSrc: '',
        newSrc: ''
    },
    compressImage() {
        let that = this;
        swan.chooseImage({
            success: function (res) {
                console.log(res.tempFilePaths[0]);
                that.setData({'oldSrc': res.tempFilePaths[0]});
                swan.compressImage({
                    src: res.tempFilePaths[0],
                    quality: 80,
                    success: function (res) {
                        console.log('compressImage success', res);
                        that.setData('newSrc', res.tempFilePath)
                    },
                    fail: function (err) {
                        console.log('compressImage fail', err);
                    }
                });
            },
            fail: function (err) {
                console.log('错误码:' + err.errCode);
                console.log('错误信息:' + err.errMsg);
            }
        });
    }
});

# 常见问题

# Q:富文本框里的 图片,如何使用 previewImage这个api?

A:使用方法如下:

  1. 如果整个页面都是rich-text,那么可以用一个web-view组件加载h5,在h5中自己实现一个类似rich-text组件的功能(把 js tree/ dom片段渲染成最终 html),预览图片可以用h5功能来做,或者百度的端能力
  2. 如果小程序页面中部分区域是rich-text,想要实现rich-text中预览图片不行,因为rich-text中会屏蔽所有的事件。