bricks/docs/ai/image.md
2025-11-18 16:01:43 +08:00

109 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Image
## 控件功能,类型(普通控件或容器控件),父类控件
用于显示图片的控件。支持设置图片 URL、默认错误备用图以及将当前图像内容导出为 Base64 字符串。
**类型:** 普通控件
**父类控件:** `bricks.JsWidget`
### 初始化参数
| 参数名 | 类型 | 说明 |
|-------|------|------|
| `url` | String | 图片的 URL 地址,构造时会自动设置到 `<img>` 元素的 `src` 属性 |
| `default_url` | String | 当图片加载失败时,自动切换为此 URL 显示备用图 |
| `height` | Number (可选) | 设置图片高度(可由 CSS 或 DOM 自动处理) |
| `width` | Number (可选) | 设置图片宽度(可由 CSS 或 DOM 自动处理) |
> 注:所有参数通过 `opts` 对象传入构造函数。
### 主要事件
无显式定义事件,但内部使用了原生 `<img>``onerror` 事件来处理加载失败情况:
- **`onerror` → 触发 `set_default_url()`**
当图片加载失败时,自动替换为 `default_url` 指定的备用图片,并清除错误监听以防止循环触发。
---
# Icon
## 控件功能,类型(普通控件或容器控件),父类控件
基于 `Image` 扩展的图标控件,支持字符单位尺寸缩放(`charsize` 基础)、动态大小调整和布局适配。常用于界面中与文字对齐的小图标。
**类型:** 普通控件
**父类控件:** `bricks.Image`
### 初始化参数
| 参数名 | 类型 | 说明 |
|--------|------|------|
| `url` | String | 图标图片地址,继承自 `Image` |
| `rate` | Number | 缩放倍率,默认为 `1`,实际大小 = `charsize * rate` |
| `cwidth` | Number | 占据的字符宽度,默认为 `1` |
| `cheight` | Number | 占据的字符高度,默认为 `1` |
| `dynsize` | Boolean | 是否启用动态尺寸调整,默认为 `true`,根据 `charsize_sizing()` 调整尺寸 |
> 注:`charsize` 来源于 `bricks.app.charsize`,是应用级字体基准单位。
### 主要事件
无独立事件定义,行为主要在初始化和属性变更后通过 `options_parse()` 触发重绘。
- **`options_parse()`**
在控件初始化时调用,用于解析并应用尺寸相关选项,包括设置 URL 和调整大小。
---
# StatedIcon
## 控件功能,类型(普通控件或容器控件),父类控件
状态图标控件,可依据不同状态切换对应图标图像。适用于如开关状态、多态指示器等场景。
**类型:** 普通控件
**父类控件:** `bricks.Icon` (间接继承 `Image`
### 初始化参数
| 参数名 | 类型 | 说明 |
|--------|------|------|
| `states` | Array<{state: String, url: String}> | 状态数组,每个对象包含一个状态名和对应的图片 URL |
| `state` | String | 初始状态名称;若未指定,则默认使用 `states[0].state` |
| `rate`, `cwidth`, `cheight`, `dynsize` | 同上 | 继承自 `Icon` 的布局与样式参数 |
> 示例:
> ```js
> {
> states: [
> { state: 'normal', url: 'icon-normal.png' },
> { state: 'active', url: 'icon-active.png' }
> ],
> state: 'normal'
> }
> ```
### 主要事件
- **`set_state(state)`**
方法:手动设置当前状态,控件会查找匹配的状态项并更新图片 URL重新解析选项并渲染。
- 参数:`state` —— 要切换到的状态字符串
- 行为:遍历 `this.states`,找到对应项后调用 `super.options_parse()` 更新视图
---
# BlankIcon
## 控件功能,类型(普通控件或容器控件),父类控件
空白占位图标控件,不显示任何图像,仅作为具有固定字符尺寸的透明占位符,用于布局对齐或动态替换前的预留空间。
**类型:** 普通控件
**父类控件:** `bricks.JsWidget`
### 初始化参数
| 参数名 | 类型 | 说明 |
|--------|------|------|
| `rate` | Number | 尺寸缩放比率,默认为 `1`,影响基于 `charsize` 的计算 |
| `cwidth` | Number | 占据的字符宽度,默认为 `1` |
| `cheight` | Number | 占据的字符高度,默认为 `1` |
| `dynsize` | Boolean | 是否启用动态尺寸调整,默认为 `true`,控制是否响应 `charsize_sizing()` |
### 主要事件
无公开事件或回调。其核心作用是在 UI 布局中保持与其他图标一致的尺寸行为,而不加载任何图像资源。