tencent cloud

数据万象

动态与公告
产品动态
产品公告
产品简介
产品概述
产品优势
应用场景
功能概览
地域与域名
使用限制
产品计费
计费概述
计费方式
计费项
免费额度
欠费说明
查看消费明细
常见问题
快速入门
注册与登录
绑定存储桶
上传和处理文件
下载和删除文件
解绑存储桶
通过 COS 使用数据万象
能力地图
图片处理
媒体处理
内容审核
AI 内容识别
文档处理
智能语音
文件处理
用户指南
概览
存储桶管理
智能工具箱
任务与工作流
数据监控
用量统计
实践教程
版权保护解决方案
图片处理实践
API 授权策略使用指引
工作流实践
API 文档
API 概览
结构体
公共请求头部
公共响应头部
开通万象服务
图片处理
AI 内容识别
智能语音
媒体处理
内容审核
文档处理
文件处理
任务与工作流
云查毒
错误码
请求签名
SDK 文档
SDK 概览
图片处理 Android SDK
图片处理 iOS SDK
COS Android SDK
C SDK
C++ SDK
.NET(C#) SDK
Go SDK
COS iOS SDK
Java SDK
JavaScript SDK
Node.js SDK
PHP SDK
Python SDK
小程序 SDK
SDK 产品个人信息保护规则
安全与合规
权限管理
常见问题
基础设置
文档处理
媒体处理
内容识别
智能语音
服务协议
Service Level Agreement
联系我们
词汇表

图片处理

PDF
聚焦模式
字号
最后更新时间: 2025-10-16 17:10:14

简介

数据万象提供两种方式进行图片处理:图片自适应处理 CIResponsiveTransformation 和自定义转换处理 CITransformation。
说明:
支持格式:支持处理 JPG、BMP、GIF、PNG、WEBP 格式,并且支持 HEIF 格式的解码和处理操作。
体积限制:处理图片原图大小不超过32MB、宽高不超过30000像素且总像素不超过2.5亿像素,处理结果图宽高设置不超过9999像素;针对动图,原图宽 x 高 x 帧数不超过2.5亿像素。
动图帧数限制:gif 帧数限300帧。

相关资源

SDK 接口与参数文档请参见 SDK API

图片自适应处理 CIResponsiveTransformation

图片自适应处理包括了格式转换(根据系统版本自动变换格式)和缩放(根据图片控件尺寸以及 ScaleType 进行缩放),相关说明如下:

1. 自适应加载 CIResponsiveTransformation。
2. 根据当前 imageView 控件尺寸自动调整图片大小。
3. 根据系统版本自动调整最优图片格式,iOS 11以下加载原格式,iOS 11及以上加载 HEIC 格式。

Objective-C
CIResponsiveTransformation * sTransform = [[CIResponsiveTransformation alloc]initWithView:imageView scaleType:ScaleTypeAUTOFit]
swift
let sTransform = CIResponsiveTransformation(view: nil, scale: ScaleType.autoFit)

自定义转换处理 CITransformation

CloudInfinite SDK 中的 CITransformation 类封装了数据万象的基础图片处理功能其中包含如下功能:

缩放
裁剪
旋转
锐化
水印

在使用数据万象基础图片处理功能时首先实例化 CITransformation 类,下面所有操作一致,不再重复说明。 Objective-C
CITransformation * transform = [CITransformation new];
swift
let transform = CITransformation();

缩放

说明:
API 文档请参见 缩放功能接口

按百分比缩放

Objective-C
// 以缩放百分之50为例
[transform setZoomWithPercent:50 scaleType:ScalePercentTypeALL];

// scaleType 可以指定如下类型:
// 仅缩放宽度,高度不变
ScalePercentTypeOnlyWidth = 1,
// 仅缩放高度,宽度不变
ScalePercentTypeOnlyHeight,
//指定图片的宽高同时缩放
ScalePercentTypeALL,
swift
transform.setZoomWithPercent(50, scale: ScalePercentType.ALL)

指定宽高缩放

Objective-C
// 以宽高都指定为100 并且缩放类型为 ScaleTypeAUTOFit 等比缩放
[transform setZoomWithWidth:100 height:100 scaleType:ScaleTypeAUTOFit];

// 在指定宽高缩放时,scaleType 可以指定的类型:
// 忽略原图宽高比例,指定图片宽度为 Width,高度为 Height ,强行缩放图片,可能导致目标图片变形
ScaleTypeAUTOFill = 1,
// 限定缩略图的宽度和高度的最大值分别为 Width 和 Height,进行等比缩放
ScaleTypeAUTOFit,
// 限定缩略图的宽度和高度的最小值分别为 Width 和 Height,进行等比缩放
ScaleTypeAUTOFITWithMin,
// 指定目标图片宽度为 Width,高度传入0, 高度等比压缩
ScaleTypeOnlyWidth,
// 指定目标图片高度为 Height,宽度传0,宽度等比压缩
ScaleTypeOnlyHeight
swift
transform.setZoomWithWidth(10, height: 100, scaleType: ScaleType.autoFit)

等比缩放

限制像素缩放,缩放后的图像,总像素数量不超过指定数量。
Objective-C
// 缩放后的图像,总像素数量不超过1000 为例;
[transform setZoomWithArea:1000];
swift
transform.setZoomWithArea(1000)

裁剪

说明:
API 文档请参见 裁剪功能接口

普通裁剪

Objective-C
// 指定目标图片宽度、高度、相对于图片左上顶点水平向右偏移、相对于图片左上顶点水平向下偏移进行裁剪为例;
[transform setCutWithWidth:100 height:100 dx:30 dy:30];
swift
transform.setCutWithWidth(100, height: 100, dx: 30, dy: 30)

内切圆裁剪

radius 是内切圆的半径,取值范围为大于0且小于原图最小边一半的整数。内切圆的圆心为图片的中心。图片格式为 gif 时,不支持该参数。 Objective-C
// 指定半径100为例
[transform setCutWithIRadius:100];
swift
transform.setCutWithIRadius(100)

圆角裁剪

radius 为图片圆角边缘的半径,取值范围为大于0且小于原图最小边一半的整数。圆角与原图边缘相切。图片格式为 gif 时,不支持该参数。 Objective-C
// 指定圆角半径100为例
[transform setCutWithRRadius:100];
swift
transform.setCutWithRRadius(100)

缩放裁剪

说明:
方位图说明,请参见 gravity 介绍
Objective-C
// 指定宽高缩放裁剪,如果为0则不变;
[transform setCutWithCrop:100 height:100];

// 指定宽高以及 gravity 缩放裁剪;
[transform setCutWithCrop:100 height:100 gravity:CIGravityCenter];
swift
transform.setCutWithCrop(100, height: 100)
transform.setCutWithCrop(100, height: 100, gravity: CloudInfiniteGravity.CIGravityCenter);

人脸智能裁剪

基于图片中的人脸位置进行缩放裁剪。目标图片的宽度为 Width、高度为 Height。
Objective-C
// 裁剪人脸并宽高指定100缩放为例;
[transform setCutWithScrop:100 height:100];
swift
transform.setCutWithScrop(100, height: 100)

旋转

说明:
API 文档请参见 旋转功能接口

普通旋转

图片顺时针旋转角度,取值范围0 - 360 ,默认不旋转。
Objective-C
// 以旋转45度为例;
[transform setRotateWith:45];
swift
transform.setRotateWith(45)

自适应旋转

根据原图 EXIF 信息将图片自适应旋转回正。 Objective-C
[transform setRotateAutoOrient];
swift
transform.setRotateAutoOrient()

格式转换

说明:
API 文档请参见 格式转换接口

格式转换

目标缩略图的图片格式可为:TPG,JPG,BMP,GIF,PNG,HEIC,WEBP,YJPEG,AVIF 等,其中 YJPEG 为数据万象针对 JPEG 格式进行的优化,本质为 JPG 格式;缺省为原图格式。
Objective-C
// 以转换为 JPG 为例
[transform setFormatWith:CIImageTypeJPG];

// 指定传参方式:
[transform setFormatWith:CIImageTypeTPG options:CILoadTypeUrlFooter];
swift
transform.setFormatWith(CIImageFormat.typeJPG);
transform.setFormatWith(CIImageFormat.typeJPG, options: CILoadTypeEnum.urlFooter);
CILoadTypeEnum
// 加载类型 方式一:带 accept 头部 accept:image/ ***
CILoadTypeAcceptHeader = 0,
// 加载类型 方式二:在 url 后面中拼接 imageMogr2/format/ ***
// 如果需要方式二,则使用该值;不传默认为第一种方式
CILoadTypeUrlFooter,
说明:
使用 HEIC 格式,需要在 iOS11及以上;不支持 GIF 格式图片转为 HEIC。
当指定为 CILoadTypeAcceptHeader 方式传参时,并且组合了其他的转换则 header 失效,并且在 sdk 内部自动转换为 footer 的方式。
在使用图片格式转换时,如果需要转为 TPG 格式,则需要依赖 CloudInfinite/TPG 模块。
在使用图片格式转换时,如果需要转为 AVIF 格式,则需要依赖 CloudInfinite/AVIF 模块。
在使用图片格式转换时,如果需要转为WEBP格式,则需要依赖 SDWebImageWebPCoder 库。
pod 'CloudInfinite/TPG'
pod 'CloudInfinite/AVIF'

gif 格式优化

只针对原图为 GIF 格式,对 GIF 图片格式进行的优化,降帧降颜色。
FrameNumber=1,则按照默认帧数30处理,如果图片帧数大于该帧数则截取。
FrameNumber 取值( 1,100 ],则将图片压缩到指定帧数 (FrameNumber)。
Objective-C
[transform setCgif:50];
swift
transform.setCgif(50)

输出渐进式 JPG 格式

Mode 可为0或1。0表示不开启渐进式;1表示开启渐进式。该参数仅在输出图片格式为 JPG 格式时有效。如果输出非 JPG 图片格式,会忽略该参数,默认值0。
Objective
[transform setInterlace:YES];
swift
transform.setInterlace(true)

质量变换

调节图片质量,API 文档请参见 质量变换接口
Objective-C
// 以图片的绝对质量变换以60为例
// type 为变换类型,下面具体介绍
[transform setQualityWithQuality:60 type:CIQualityChangeAbsolute];
swift
transform.setQualityWithQuality(60, type: CIQualityChangeEnum.absolute)
数据万象提供三种变换类型:绝对变换、相对变换、最低质量变换,其中绝对变换分为强制指定和不指定两种,如下:
// 图片的绝对质量,取值范围0 - 100 ,默认值为原图质量;
CIQualityChangeAbsolute = 1,

// 图片的绝对质量,取值范围0 - 100 ,强制使用指定值,例如:90!
CIQualityChangeAbsoluteFix,

// 图片的相对质量,取值范围0 - 100 ,数值以原图质量为标准。例如原图质量为80,将 rquality 设置为80后,得到处理结果图的图片质量为64(80x80%)
CIQualityChangeRelative,

// 图片的最低质量,取值范围0 - 100 ,设置结果图的质量参数最小值。
// 例如原图质量为85,将 lquality 设置为80后,处理结果图的图片质量为85。
// 例如原图质量为60,将 lquality 设置为80后,处理结果图的图片质量会被提升至80。
CIQualityChangeLowest,
说明:
仅适用于 JPG、WEBP 格式的图片。

高斯模糊

高斯模糊功能,模糊半径,取值范围为1 - 50;正态分布的标准差,必须大于0。API 文档请参见 高斯模糊接口
Objective-C
// 模糊半径20,正态分布的标准差以20为例
[transform setBlurRadius:20 sigma:20];
swift
transform.setBlurRadius(20, sigma: 20)
说明:
图片格式为 GIF 时,不支持该操作。

锐化

图片锐化功能,value 为锐化参数值,取值范围为10 - 300间的整数,推荐使用70。参数值越大,锐化效果越明显。API 文档请参见 锐化接口
Objective-C
// 以锐化值100为例
[transform setSharpenWith:100];
swift
transform.setSharpenWith(100)

水印

说明:
API 文档请参见 图片水印接口文字水印接口
方位图说明,请参见 gravity

图片水印

Objective-C
//imageUrl 水印图片地址
// gravity 文字水印位置,九宫格位置(参考九宫格方位图 ),默认值 SouthEast
// dx 水平(横轴)边距,单位为像素,缺省值为0
// dy 垂直(纵轴)边距,单位为像素,默认值为0
// blogo 水印图适配功能,适用于水印图尺寸过大的场景(如水印墙)。共有两种类型:
/// 当 blogo 设置为1时,水印图会被缩放至与原图相似大小后添加
/// 当 blogo 设置为2时,水印图会被直接裁剪至与原图相似大小后添加
[tran setWaterMarkWithImageUrl:@"http://tpg-1253653367.cos.ap-guangzhou.myqcloud.com/google.jpg" gravity:0 dx:0 dy:0 blogo:0];
swift
transform.setWaterMarkWithImageUrl("", gravity: CloudInfiniteGravity.CIGravityCenter, dx: 0, dy: 0, blogo: CIWaterImageMarkBlogoEnum.none)

文字水印

Objective-C
// text 水印内容
// font 水印字体
// color 字体颜色,默认值为 #3D3D3D
// dissolve 文字透明度,取值1 - 100 ,默认90
// gravity 文字水印位置,默认值 SouthEast
// dx 水平(横轴)边距,单位为像素,缺省值为0
// dy 垂直(纵轴)边距,单位为像素,默认值为0
// batch 平铺水印功能,可将文字水印平铺至整张图片。当 batch 设置为1时,开启平铺水印功能
// degree 文字水印的旋转角度设置,取值范围为0 - 360,默认0
[transform setWaterMarkText:@"腾讯云数据万象" font:nil textColor:nil dissolve:90 gravity:CIGravitySouth dx:100 dy:100 batch:YES degree:45];
swift
transform.setWaterMarkText("腾讯云数据万象", font: nil, textColor: nil, dissolve: 90, gravity: CloudInfiniteGravity.CIGravityCenter, dx: 100, dy: 100, batch: true, degree: 45)

获取图片主题色

腾讯云数据万象通过 imageAve 接口获取图片主色调信息。API 文档请参见 获取主题色接口
Objective-C
[transform setViewBackgroudColorWithImageAveColor:YES]
swift
transform.setViewBackgroudColorWithImageAveColor(true)

去除图片元信息

腾讯云数据万象通过 imageMogr2 接口可去除图片元信息,包括 exif 信息。API 文档请参见 去除图片元信息接口
Objective-C
[transform setImageStrip];
swift
transform.setImageStrip()

组合操作

CITransformation * tran = [CITransformation new];
// ***************缩放*************
// 缩放百分之50
[transform setZoomWithPercent:50 scaleType:ScalePercentTypeALL];


// **格式转换 // 转为TPG格式 [tran setFormatWith:CIImageTypeTPG]; // **裁剪 // 裁剪图片 宽高100 左上角左边 30 30 [tran setCutWithWidth:100 height:100 dx:30 dy:30];


帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈