用途:把多步 UI 交互、前后对比、缺陷复现或修复过程录制成带标注的动画 GIF,用于 PR 描述、文档和发布说明。
主要能力:用 Playwright 逐步执行交互并逐帧截图;用 imageio 组装 GIF(资料指出不要用 PIL 写 GIF,因其会合并视觉相似帧而破坏动画);支持可变帧时长(快速操作约 100ms、操作后停顿 600-800ms、主信息 500ms 以上);用 Pillow 在指定帧上绘制矩形、箭头、标签等标注,并支持淡入(如 10fps 用 2 帧 50%/100%);用 mss 录制浏览器之外的桌面、终端或窗口区域;用 numpy 与 scipy 做帧间差异聚类,自动定位变化区域。
使用方式:先安装依赖 pip install playwright Pillow imageio numpy scipy mss -q 并执行 playwright install chromium。捕获帧用 Playwright 的 async_playwright 打开页面、按步骤执行动作并截图;组装用 iio.imwrite("demo.gif", frames, duration=durations, loop=0);桌面录制用 mss 抓取指定 region 或主显示器,按 fps 循环截图后保存。建议把标注逻辑写成独立脚本(如 annotate_gif.py)便于迭代时序与位置,并先在隔离的小 GIF 上测试动画。
适用场景:PR 演示、文档与发布说明的走查、前后行为对比、缺陷复现与修复展示。
限制:GIF 每帧仅 256 色,适合 UI 截图,照片类内容可能出现色带;高分辨率 50 帧以上文件可达数 MB,建议裁剪相关区域;GIF 无音频,需旁白演示只能用 MP4,但会失去 VS Code 预览支持。格式兼容性方面,GIF 在 VS Code 预览、GitHub 与浏览器中均可动画播放,WebP 在 VS Code 仅静态,MP4 在 VS Code 预览中不可用。建议打字与交互最低 10fps,桌面录制 fps 不超过 10 以控制体积。资料未提供具体收费、平台或效果数据。