# 首次使用

使用云开发扩展能力之前,需要先在云开发控制台安装相关扩展程序。具体步骤:

  1. 打开云开发扩展控制台
  2. 选择希望安装的扩展
  3. 单击【安装】,进行扩展程序的安装
  4. 等待扩展程序安装完成即可使用

# 在小程序中使用

小程序基础库从1.14.1版本开始支持。

使用云开发扩展能力需要额外引入 @cloudbase/extension-ci npm包,具体引入办法:

  1. 在小程序根目录执行npm install --save @cloudbase/extension-ci

  2. 点击QQ小程序开发者顶部栏 - 工具 - 构建npm

  3. 在小程序代码中引入@cloudbase/extension-ci

# 示例代码
const extCI = require('@cloudbase/extension-ci');

// 初始化环境
qq.cloud.init({
    env:"test-x1dzi"
})

// 注册云开发扩展
qq.cloud.registerExtension(extCI);

// 用户选择图片
qq.chooseImage({
  success:res=>{
    // 使用文件管理读取文件内容
    const fsm = qq.getFileSystemManager();
    const filePath = res.tempFilePaths[0];
    const cloudPath = `demo.jpeg`;

    fsm.readFile({
      filePath:filePath,
      success:res2=>{

        const fileContent = res2.data; // 格式为ArrayBuffer

        // 使用云开发扩展能力转换图片格式
        qq.cloud.invokeExtension("CloudInfinite", {
          action: "ImageProcess",
          cloudPath: cloudPath, // 存储图像的绝对路径,与qq.cloud.uploadFile中一致
          fileContent:fileContent, // 该字段可选,文件内容:ArrayBuffer|Buffer。有值,表示上传时处理图像;为空,则处理已经上传的图像
          operations: {
            rules: [
              {
                  fileid: `/image_process/demo.png`,// 处理结果的文件路径,如以’/’开头,则存入指定文件夹中,否则,存入原图文件存储的同目录
                  rule: "imageView2/format/png" // 处理样式参数,与下载时处理图像在url拼接的参数一致
              }
            ]
          }
        }).then(res=>{
          console.log(res)
        })
      }
    })
  }
})

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45

# 在云函数中使用

  1. 在云函数目录安装 @cloudbase/extension-ci
npm install @cloudbase/extension-ci
1
  1. 示例代码:
const cloud = require('qq-server-sdk');
const extCI = require('@cloudbase/extension-ci');
// 初始化环境
cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV
})

// 注册云开发扩展
cloud.registerExtension(extCI);

// 云函数入口函数
exports.main = async (event, context) => {

  const cloudPath = event.cloudPath;

  // 使用云开发扩展能力生成水印
  const res = await cloud.invokeExtension("CloudInfinite", {
    action: "ImageProcess",
    cloudPath: cloudPath, // 存储图像的绝对路径,与cloud.uploadFile中一致
    operations: {
      rules: [
        {
            fileid: `/image_process/${cloudPath}`,// 处理结果的文件路径,如以’/’开头,则存入指定文件夹中,否则,存入原图文件存储的同目录
            // 处理样式参数,与下载时处理图像在url拼接的参数一致
            rule: "watermark/2/text/6IW-6K6v5LqRwrfkuIfosaHkvJjlm74/fill/IzNEM0QzRA/fontsize/20/dissolve/50/gravity/northeast/dx/20/dy/20/batch/1/degree/45" 
        }
      ]
    }
  })

  return {
    res
  }
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35