跨平台截图标注工具(macOS / Windows),Python + PyQt6 单代码库。区域 / 窗口 / 全屏 / 滚动长截图、GIF 与 MP4 录制、OCR、十余种标注工具。
到 Releases 下载对应平台安装包:
| 文件 | 平台 |
|---|---|
Shorts.exe |
Windows x64,单文件直接运行 |
Shorts-Windows-x64.zip |
Windows x64(同上,压缩版) |
Shorts-macOS-arm64.dmg |
macOS Apple Silicon,双击挂载后拖入「应用程序」 |
Shorts-macOS-arm64.zip |
macOS Apple Silicon(解压即 .app,压缩版) |
macOS 包为 adhoc 签名:首次打开被 Gatekeeper 拦时,右键 App →「打开」,或在终端执行
xattr -cr /Applications/Shorts.app。Windows 未签名,SmartScreen 提示时选「仍要运行」。
- 区域截图 — 拖拽选区,自动吸附窗口边缘
- 窗口截图 — 鼠标悬停高亮,单击截取整窗
- 全屏截图
- 滚动截图 — 滚动内容自动拼接成长图(NCC + Sobel 边缘匹配,支持自动滚动模式与滚轮里程计先验)
- GIF / MP4 录制 — 选区录制,带点击涟漪与录制中标注
- OCR 文字识别 — macOS 原生 Vision(中英文),识别结果直接复制
- 标注工具 — 箭头、直线(实/虚线)、矩形、椭圆、文字、画笔、高亮、马赛克(块状/高斯)、序号、取色器、标注描边
- 复制到剪贴板 / 保存文件、开机自启、Retina 2x 清晰输出
核心截图 / 标注 / GIF 跨平台一致;以下功能因系统能力不同存在差异:
| 功能 | macOS | Windows |
|---|---|---|
| 区域 / 窗口 / 全屏截图 | ✅ | ✅ |
| 标注工具(全系列) | ✅ | ✅ |
| 滚动截图(手动滚动 + 自动拼接) | ✅ | ✅ |
| 滚动截图 · 自动滚动模式 | ✅(CGEvent 合成滚轮,需辅助功能权限) | ✅(pyautogui,未充分实测) |
| 滚轮里程计先验(快滚防错拼) | ✅(NSEvent 监听,需输入监控权限) | ❌(纯视觉匹配,仍可用) |
| OCR 文字识别 | ✅ 原生 Vision(中英文) | ❌ |
| GIF 录制(点击涟漪 + 录制中标注) | ✅ | ✅ |
| MP4 导出 | ✅ 需自装 ffmpeg | ✅ 需自装 ffmpeg |
| Retina / 高 DPI 清晰输出 | ✅ 2x | ✅(跟随系统缩放) |
| 全局热键 | 双击 Cmd 键 | Ctrl + Alt + A |
| 开机自启 | ✅ | ✅ |
| 系统权限 | 辅助功能 / 屏幕录制 / 输入监控 | 无需 |
pip install -r requirements.txt
python main.pymacOS 下 OCR 功能需编译 Swift 辅助程序(已预编译 arm64 二进制;其他架构需自编译):
swiftc core/ocr_helper.swift -o core/ocr_helper -O| 平台 | 全局截图快捷键 |
|---|---|
| Windows | Ctrl + Alt + A |
| macOS | 双击 Cmd 键 |
这个工具深度依赖 macOS 系统能力,首次使用请在 系统设置 → 隐私与安全性 中授权:
| 权限 | 用途 | 不授权的后果 |
|---|---|---|
| 辅助功能 | 全局热键(双击 Cmd)、自动滚动 | 热键不触发;自动滚动无法滚动目标页面 |
| 屏幕录制 | 截图 / GIF / OCR | 截图全黑 |
| 输入监控 | 滚动截图的滚轮里程计 | 滚动拼接退化为纯视觉匹配(仍可用) |
提示:开发迭代中频繁重打包会改变 adhoc 签名,macOS 的 TCC 授权可能失效,需在系统设置中把 Shorts 的开关关掉再重新打开。
pyinstaller shorts_app.specWindows 产出 dist/Shorts.exe;macOS 产出 dist/Shorts.app(adhoc 签名,本地使用可直接打开;分发需自行签名/公证)。
- 滚动截图在极端重复版式(如无文字的等距色块列表)上存在原理性歧义,自动滚动模式可规避
- 首次截图偶发崩溃(低频,待复现)