UIImage 类表示一个图像对象,可用于加载、编码、转换与显示。它支持从文件路径、二进制数据或 Base64 字符串中创建图像,并提供多种格式转换方法(PNG/JPEG)。
UIImage 可直接用于 Image 组件显示,也可与 Data 类配合用于图像存储、上传、加密等操作。
UIImage 是脚本环境中处理图像的核心类,常用于以下场景:
width: number图像的宽度(单位:像素)。
height: number图像的高度(单位:像素)。
scale: number图像的缩放比例(Scale Factor),通常为 1 或 2(Retina 屏幕)。
imageOrientation: string图像的方向,可能的值包括:
"up""down""left""right""upMirrored""downMirrored""leftMirrored""rightMirrored""unknown"isSymbolImage: boolean指示该图像是否为 SFSymbol 符号图像。
renderingMode: "automatic" | "alwaysOriginal" | "alwaysTemplate" | "unknown"图像的渲染模式。
automatic: 系统自动决定渲染方式alwaysOriginal: 显示原始颜色alwaysTemplate: 使用模板渲染(可通过 tintColor 着色)resizingMode: "tile" | "stretch" | "unknown"图像的拉伸模式:
"tile":平铺重复绘制"stretch":直接拉伸capInsets: { top: number, left: number, bottom: number, right: number }定义图像的可拉伸区域边距(Cap Insets)。
flipsForRightToLeftLayoutDirection: boolean是否为右到左(RTL)布局方向自动翻转图像。
preparingThumbnail(size: Size): UIImage | null生成指定尺寸的缩略图。
参数:
size.width: 缩略图宽度size.height: 缩略图高度返回值:
UIImage 实例或 null示例:
withBaselineOffset(offset: number): UIImage设置图像的基线偏移量(Baseline Offset),用于调整图像在垂直方向上的显示位置,在文本布局中很有用。
withHorizontallyFlippedOrientation(): UIImage水平翻转图像方向,返回新的 UIImage 实例。
withTintColor(color: string, renderingMode?: "automatic" | "alwaysOriginal" | "alwaysTemplate"): UIImage | null为图像应用指定的渲染模式和颜色着色。
参数:
color: 要应用的颜色字符串,例如 "#ffcc00" 或 "rgb(255,128,0)"renderingMode: 渲染模式,默认为 "automatic"示例:
withRenderingMode(renderingMode: "automatic" | "alwaysOriginal" | "alwaysTemplate"): UIImage | null返回使用指定渲染模式的新图像。
resizableImage(capInsets, resizingMode?): UIImage | null返回带有指定可拉伸区域和模式的新图像。
参数:
capInsets: { top, left, bottom, right }resizingMode: "tile" 或 "stretch",默认 "tile"示例:
renderedInCircle(radius?: number | null, fitEntireImage?: boolean): UIImage返回一个新的圆形渲染版本的图像,可选指定圆的半径和是否完整显示整个图像。
参数:
radius(可选):圆的半径(单位:点)。
如果未指定:
fitEntireImage 为 false 时,圆形将使用图像的最短边作为直径;fitEntireImage 为 true 时,圆形将使用图像的最长边作为直径。fitEntireImage(可选):是否让整个图像内容都适应在圆形范围内。
true。false,图像会填满圆形区域,但可能出现内容裁剪。返回值:
UIImage 实例,表示圆形渲染结果。示例 1:创建默认的圆形头像
示例 2:指定半径并完整显示整个图像
示例 3:填充模式(可能裁剪图像部分内容)
renderedIn(size: { width: number, height: number }, source?: { position?: ..., size?: ... }): UIImage | null返回一个新的图像,将源图像缩放到指定大小,可选指定源图像的位置和尺寸。
参数:
size: { width: number, height: number },目标图像的尺寸(单位:点)source: { position?: { x: number, y: number }, size?: { width: number, height: number } },源图像的位置和尺寸。返回值:
UIImage 实例;失败时返回 null。示例 1:将整张图片缩放绘制到矩形区域
示例 2:从源图像中裁剪指定区域并绘制
applySymbolConfiguration(config: UIImageSymbolConfiguration | UIImageSymbolConfiguration[]): UIImage | null返回一个应用指定符号配置(UIImageSymbolConfiguration)的新图像实例。
该方法主要用于自定义 SF Symbols 图标的外观(如颜色、粗细、大小、配色模式等)。
参数:
config: 要应用的符号配置对象。
UIImageSymbolConfiguration 实例;返回值:
UIImage 实例,表示应用配置后的图像。
如果应用失败,返回 null。示例 1:设置符号图标为多色显示
示例 2:同时应用缩放和权重配置
示例 3:设置分层颜色与调色板颜色
UIImageSymbolConfiguration 是用于配置 符号图像(SF Symbols) 外观的类。
可通过其静态方法创建不同的配置对象,并在 applySymbolConfiguration() 中使用。
| 方法 | 说明 |
|---|---|
preferringMonochrome() |
优先使用单色显示符号。 |
preferringMulticolor() |
优先使用多色显示符号。 |
scale(value) |
设置符号缩放比例,可选值:"default", "large", "medium", "small", "unspecified"。 |
weight(value) |
设置符号线条粗细,可选值:"ultraLight", "thin", "light", "regular", "medium", "semibold", "bold", "heavy", "black"。 |
pointSize(value) |
设置符号点大小。 |
paletteColors(value) |
设置符号调色板颜色数组(用于多层符号)。 |
hierarchicalColor(value) |
设置符号的层级颜色(分层阴影样式)。 |
variableValueMode(value) |
设置符号的动态数值显示模式,可选值:"automatic", "color", "draw"。 |
colorRenderingMode(value) |
设置颜色渲染模式,可选值:"automatic", "flat", "gradient"。 |
locale(identifier) |
设置用于符号本地化的语言标识符(如 "en", "zh-Hans")。 |
示例:组合配置符号图标外观
toJPEGData(compressionQuality?: number): Data | null将图像转换为 JPEG 格式的二进制数据。
参数:
compressionQuality(可选): 压缩质量(0–1,默认 1)返回值:
Data 实例或 nulltoPNGData(): Data | null将图像转换为 PNG 格式的二进制数据。
返回 Data 实例或 null。
toJPEGBase64String(compressionQuality?: number): string | null将图像转换为 Base64 编码的 JPEG 字符串。
toPNGBase64String(): string | null将图像转换为 Base64 编码的 PNG 字符串。
UIImage.fromData(data: Data): UIImage | null通过 Data 创建图像。
UIImage.fromFile(filePath: string): UIImage | null从文件路径加载图像(支持 PNG/JPEG)。
UIImage.fromBase64String(base64String: string): UIImage | null通过 Base64 字符串创建图像。
UIImage.fromSFSymbol(name: string): UIImage | null从 SFSymbol 名称 创建系统图标。
示例:
UIImage.fromURL(url: string): Promise<UIImage | null>通过 URL 加载图像(支持 PNG/JPEG)。
示例:
UIImage 可以直接用于 <Image> 组件中显示图像。
UIImage 是 Scripting 脚本环境中图像操作的核心类,具备以下特性:
<Image> 组件显示,支持浅色/深色模式自动切换