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
1215static 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