Skip to content

Commit 21737a0

Browse files
Update README.md
1 parent dc6f55e commit 21737a0

File tree

1 file changed

+42
-39
lines changed

1 file changed

+42
-39
lines changed

README.md

Lines changed: 42 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
1-
# WindowImagePlayer API 文档
1+
# WindowImagePlayer API 文档
22

3-
`WindowImagePlayerHost` 是一个基于 WinForms 的组件,通过在桌面上动态控制大量原生窗口的位置和尺寸来复现图像序列。它支持增量渲染、性能优化配置以及自动化运行模式。
3+
![1234566](https://github.com/user-attachments/assets/5dde0031-80de-49d4-a1e9-812d30fb3c93)
44

5-
这个工具可以用于创作视觉效果或者音乐卡点,使用数个Windows窗口渲染指定文件夹内所有黑白图片。
65

7-
## 1. 快速入门
6+
`WindowImagePlayerHost` 是一个基于 WinForms 的组件,通过在桌面上动态控制大量原生窗口的位置和尺寸来复现图像序列。它支持增量渲染、性能优化配置以及自动化运行模式。
87

9-
`Program.cs` 中直接初始化并运行:
8+
这个工具可以用于创作视觉效果或者音乐卡点,使用数个Windows窗口渲染指定文件夹内所有黑白图片。
9+
10+
## 1. 快速入门
11+
12+
`Program.cs` 中直接初始化并运行:
1013

1114
```csharp
1215
static void Main()
@@ -16,66 +19,66 @@ static void Main()
1619

1720
var player = new WindowImagePlayerHost(@"C:\PathToImages")
1821
{
19-
AutoStart = true, // 启动后立即播放
20-
AutoCloseWhenFinished = true, // 播放完自动退出
21-
StepSize = 30, // 采样步长
22-
FrameInterval = 50 // 50ms 一帧
22+
AutoStart = true, // 启动后立即播放
23+
AutoCloseWhenFinished = true, // 播放完自动退出
24+
StepSize = 30, // 采样步长
25+
FrameInterval = 50 // 50ms 一帧
2326
};
2427

2528
Application.Run(player);
2629
}
2730
```
2831

29-
## 2. 构造函数
32+
## 2. 构造函数
3033

3134
### `WindowImagePlayerHost(string targetFolderPath)`
32-
初始化播放器宿主。
33-
* **参数**: `targetFolderPath` (string) - 包含图像文件(.jpg, .png, .bmp)的文件夹路径。文件将按文件名排序播放。
35+
初始化播放器宿主。
36+
* **参数**: `targetFolderPath` (string) - 包含图像文件(.jpg, .png, .bmp)的文件夹路径。文件将按文件名排序播放。
3437

3538
---
3639

37-
## 3. 公开配置属性
40+
## 3. 公开配置属性
3841

39-
| 属性名 | 类型 | 默认值 | 说明 |
42+
| 属性名 | 类型 | 默认值 | 说明 |
4043
| :--- | :--- | :--- | :--- |
41-
| `AutoStart` | `bool` | `false` |`true` 时,启动程序不显示控制面板,直接开始播放。 |
42-
| `AutoCloseWhenFinished` | `bool` | `true` |`true` 时,播放完最后一帧会自动关闭宿主程序。 |
43-
| `StepSize` | `int` | `25` | 采样步长(单位:像素)。值越小画面越精细,但生成的窗口数量越多。建议范围 20-50。 |
44-
| `BrightnessThreshold` | `float` | `0.4f` | 黑色判定阈值(0.0-1.0)。亮度低于此值的区域会生成窗口。 |
45-
| `FrameInterval` | `int` | `200` | 帧间隔(单位:毫秒)。控制播放速度。 |
46-
| `ResetRatio` | `double` | `1.9` | 重刷阈值。新一帧窗口数超过当前池 `N` 倍时,会销毁所有窗口重建以提高性能。 |
47-
| `WindowColor` | `Color` | `White` | 像素窗口的背景颜色。 |
48-
| `WindowTitle` | `string` | `" "` | 像素窗口的标题栏文字。 |
49-
| `CurrentIndex` | `int` | `0` | (只读) 当前正在播放的图像索引。 |
44+
| `AutoStart` | `bool` | `false` |`true` 时,启动程序不显示控制面板,直接开始播放。 |
45+
| `AutoCloseWhenFinished` | `bool` | `true` |`true` 时,播放完最后一帧会自动关闭宿主程序。 |
46+
| `StepSize` | `int` | `25` | 采样步长(单位:像素)。值越小画面越精细,但生成的窗口数量越多。建议范围 20-50。 |
47+
| `BrightnessThreshold` | `float` | `0.4f` | 黑色判定阈值(0.0-1.0)。亮度低于此值的区域会生成窗口。 |
48+
| `FrameInterval` | `int` | `200` | 帧间隔(单位:毫秒)。控制播放速度。 |
49+
| `ResetRatio` | `double` | `1.9` | 重刷阈值。新一帧窗口数超过当前池 `N` 倍时,会销毁所有窗口重建以提高性能。 |
50+
| `WindowColor` | `Color` | `White` | 像素窗口的背景颜色。 |
51+
| `WindowTitle` | `string` | `" "` | 像素窗口的标题栏文字。 |
52+
| `CurrentIndex` | `int` | `0` | (只读) 当前正在播放的图像索引。 |
5053

5154
---
5255

53-
## 4. 公开方法
56+
## 4. 公开方法
5457

5558
### `StartPlayback()`
56-
手动开始播放。如果 `AutoStart``false`,可调用此方法启动逻辑。
59+
手动开始播放。如果 `AutoStart``false`,可调用此方法启动逻辑。
5760

5861
### `StopPlayback()`
59-
停止播放并销毁当前桌面上所有的像素窗口。
62+
停止播放并销毁当前桌面上所有的像素窗口。
6063

6164
---
6265

63-
## 5. 运行模式说明
66+
## 5. 运行模式说明
6467

65-
1. **控制台模式 (`AutoStart = false`)**:
66-
* 程序启动后会显示一个中心窗口,点击“开始播放”按钮后触发。
67-
* 适合手动调试或选择播放时机。
68+
1. **控制台模式 (`AutoStart = false`)**:
69+
* 程序启动后会显示一个中心窗口,点击“开始播放”按钮后触发。
70+
* 适合手动调试或选择播放时机。
6871

69-
2. **静默模式 (`AutoStart = true`)**:
70-
* 宿主窗口将完全透明且不显示在任务栏。
71-
* 程序启动后直接根据图片序列在屏幕上绘制窗口。
72-
* 配合 `AutoCloseWhenFinished = true` 可以实现完全自动化的视觉效果演示。
72+
2. **静默模式 (`AutoStart = true`)**:
73+
* 宿主窗口将完全透明且不显示在任务栏。
74+
* 程序启动后直接根据图片序列在屏幕上绘制窗口。
75+
* 配合 `AutoCloseWhenFinished = true` 可以实现完全自动化的视觉效果演示。
7376

7477
---
7578

76-
## 6. 注意事项
79+
## 6. 注意事项
7780

78-
* **性能消耗**: `StepSize` 设置得过小(如 < 15)会导致系统瞬间产生数千个窗口,可能造成系统卡顿或图形驱动响应缓慢。
79-
* **资源清理**: 类内部已实现 `OnFormClosing` 逻辑,关闭宿主窗口时会自动释放并销毁所有池中的子窗口。
80-
* **排序依赖**: 图像文件必须具有可排序的文件名(如 `frame_001.jpg`, `frame_002.jpg`)。
81-
* **如果使用静默模式,请务必提供关闭方法(比如应用程序为“控制台应用程序”而不是“Windows应用程序”)或者指定 `AutoCloseWhenFinished``True`否则将会死循环!**
81+
* **性能消耗**: `StepSize` 设置得过小(如 < 15)会导致系统瞬间产生数千个窗口,可能造成系统卡顿或图形驱动响应缓慢。
82+
* **资源清理**: 类内部已实现 `OnFormClosing` 逻辑,关闭宿主窗口时会自动释放并销毁所有池中的子窗口。
83+
* **排序依赖**: 图像文件必须具有可排序的文件名(如 `frame_001.jpg`, `frame_002.jpg`)。
84+
* **如果使用静默模式,请务必提供关闭方法(比如应用程序为“控制台应用程序”而不是“Windows应用程序”)或者指定 `AutoCloseWhenFinished``True`否则将会死循环!**

0 commit comments

Comments
 (0)