简介
本文档提供关于图片压缩接口的相关的 API 概览以及小程序 SDK 示例代码。
注意:
COS 小程序 SDK 版本需要大于等于 v1.5.0。
API | 操作描述 |
将图片转换为 webp 格式,压缩图片体积 | |
将图片转换为 heif 格式,压缩图片体积 | |
将图片转换为 tpg 格式,压缩图片体积 | |
将图片转换为 avif 格式,压缩图片体积 | |
压缩 SVG 图片体积 |
上传时使用图片压缩
下面示例展示了如何在上传图片时实现图片压缩。图片上传完成后,COS 会存储原始图片和已压缩过的图片。后续用户可以通过普通的下载请求获取处理结果。
示例代码
<view><button type="primary" bindtap="button">上传时使用图片压缩</button></view>
Page({button: function () {const config = {// 需要替换成您自己的存储桶信息Bucket: 'examplebucket-1250000000', /* 存储桶,必须 */Region: 'COS_REGION', /* 存储桶所在地域,必须字段 */};wx.chooseMessageFile({count: 2,type: 'all',success: function (res) {var file = res.tempFiles[0];wxfs.readFile({filePath: file.path,success: function (res) {cos.putObject({Bucket: config.Bucket, // Bucket 格式:test-1250000000Region: config.Region,Key: file.name,Body: res.data,Headers: {// 通过 imageMogr2 接口进行 webp 压缩,可以根据需要压缩的类型填入不同的压缩格式:webp/heif/tpg/avif/svgc'Pic-Operations':'{"is_pic_info": 1, "rules": [{"fileid": "exampleobject.jpg", "rule": "imageMogr2/format/webp"}]}',},},requestCallback,);},fail: (err) => console.error(err),});},fail: (err) => console.error(err),});},});
对云上数据进行图片压缩
下面示例展示了如何在对已存储在 COS 的图片进行相应处理操作,并将结果存入到 COS。
示例代码
<view><button type="primary" bindtap="button">对云上数据进行图片压缩</button></view>
Page({button: function () {// sdk的引入及初始化cos请参考 https://cloud.tencent.com/document/product/436/31953const config = {// 需要替换成您自己的存储桶信息Bucket: 'examplebucket-1250000000', /* 存储桶,必须 */Region: 'COS_REGION', /* 存储桶所在地域,必须字段 */};cos.request({Bucket: config.Bucket,Region: config.Region,Key: '1.jpeg',Method: 'POST',Action: 'image_process',Headers: {// 通过 imageMogr2 接口进行 webp 压缩,可以根据需要压缩的类型填入不同的压缩格式:webp/heif/tpg/avif/svgc'Pic-Operations':'{"is_pic_info": 1, "rules": [{"fileid": "exampleobject.jpeg", "rule": "imageMogr2/format/webp"}]}',},},requestCallback,);},});
下载时使用图片压缩
下面示例展示了如何在下载图片时实现图片压缩。
示例代码
<view><button type="primary" bindtap="button">下载时使用图片压缩</button></view>
Page({button: function () {// sdk的引入及初始化cos请参考 https://cloud.tencent.com/document/product/436/31953const config = {// 需要替换成您自己的存储桶信息Bucket: 'examplebucket-1250000000', /* 存储桶,必须 */Region: 'COS_REGION', /* 存储桶所在地域,必须字段 */};cos.getObject({Bucket: config.Bucket,Region: config.Region,Key: 'test.jpg',QueryString: `imageMogr2/format/webp`, // 通过 imageMogr2 接口进行 webp 压缩,可以根据需要压缩的类型填入不同的压缩格式:webp/heif/tpg/avif/svgc},requestCallback,);},});