IMScreenNotation
一款不太轻量的屏幕标注工具
Install / Use
/learn @shakugannosaints/IMScreenNotationREADME
IMScreenNotation
屏幕标注工具
一款基于PyQt5开发的强大屏幕标注工具,支持多种绘图工具和自定义选项,适用于屏幕截图标注、在线教学演示和演讲辅助等场景。
安装与使用
方法一:直接使用自动构建的 release (推荐)
- 下载最新的发布版本
- 运行
方法二:从源代码运行
- 克隆或下载代码库
- 安装依赖:
或者pip install PyQt5 pynputpip install -r requirements.txt - 运行程序:
python main.py
构建
- windows:直接使用build_optimized.py即可。注意使用目录中的spec文件。
功能特点
多样化的绘图工具
- 直线:绘制直线
- 矩形:绘制矩形框
- 圆形:绘制圆形
- 箭头:绘制带箭头的线条
- 自由绘制:手绘任意形状
- 填充绘制:绘制并填充闭合区域
- 点:绘制小点标记
- 激光笔:模拟激光笔效果,短暂显示后消失
- 文本:添加文字标注,支持多行文本和样式设置
- 橡皮擦:删除已绘制的内容
- 标尺:绘制测量标尺(直线和圆形)
- 图片:添加图片标注,支持常见图片格式
高级绘图属性
- 颜色选择:支持自定义颜色(含透明度)
- 线条粗细:可调整线条粗细(1-20像素)
- 不透明度控制:分别控制绘图和画布的不透明度
实用操作功能
- 撤销/重做:支持多级撤销和重做操作
- 清空画布:一键清除所有标注
- 鼠标穿透:可切换鼠标穿透模式,使鼠标操作可直接作用于下层窗口
- 画布显示/隐藏:可暂时隐藏画布
- 单次绘制模式:每次绘制后自动清空画布,适合演示场景
- 导入/导出:支持将标注内容导出为JSON文件,可随时导入恢复
界面与交互
- 悬浮工具栏:可拖动的悬浮工具栏,包含所有操作
- 工具栏折叠:可折叠工具栏以节省屏幕空间
- 热键支持:全面的热键支持,可自定义所有操作的快捷键
- 热键设置对话框:直观的热键设置界面
- 配置保存:自动保存用户设置,包括颜色、线条粗细、不透明度和热键设置
- 自定义字体大小:可以自定义用户界面的字体大小(不建议过大)
默认热键
| 功能 | 热键 | |-----|-----| | 显示/隐藏窗口 | Ctrl+Alt+H | | 切换鼠标穿透 | Ctrl+Alt+P | | 显示/隐藏画布 | Ctrl+Alt+V | | 折叠/展开工具栏 | Ctrl+Alt+T | | 完全隐藏工具栏 | 自定义 | | 清空画布 | Ctrl+Alt+C | | 撤销 | Ctrl+Z | | 重做 | Ctrl+Y | | 单次绘制模式 | Ctrl+Alt+S | | 直线工具 | Ctrl+1 | | 矩形工具 | Ctrl+2 | | 圆形工具 | Ctrl+3 | | 箭头工具 | Ctrl+4 | | 自由绘制工具 | Ctrl+5 | | 填充绘制工具 | Ctrl+Shift+5 | | 点工具 | Ctrl+6 | | 激光笔工具 | Ctrl+7 | | 文本工具 | Ctrl+8 | | 橡皮擦工具 | Ctrl+9 | | 图片工具 | Ctrl+0 | | 直线标尺工具 | Ctrl+Shift+1 | | 圆形标尺工具 | Ctrl+Shift+2 | | 属性调整 | | | 增加线条粗细 | Ctrl+q | | 减少线条粗细 | Ctrl+w | | 增加绘制不透明度 | Ctrl+Alt+q | | 减少绘制不透明度 | Ctrl+Alt+w | | 增加画布不透明度 | Ctrl+Shift+q | | 减少画布不透明度 | Ctrl+Shift+w |
系统要求
- Windows 7/8/10/11
- Python 3.6+
- PyQt5
- pynput库(用于全局热键支持)
开始使用
- 启动程序后,将显示全屏透明画布和悬浮工具栏
- 使用工具栏选择绘图工具,或使用相应热键
- 在屏幕上绘制标注
- 使用
Ctrl+Alt+P可切换鼠标穿透模式,使鼠标可操作下层窗口 - 使用
Ctrl+Alt+H可暂时隐藏整个应用 - 使用右下角的保存按钮保存当前设置
图片标注功能
- 选择图片工具(Ctrl+0)后,点击画布任意位置
- 选择要添加的图片文件(支持PNG、JPG、JPEG、BMP、GIF、SVG、TIFF、WebP格式)
- 在对话框中设置图片的缩放比例(10%-500%)
- 图片透明度由"绘制不透明度"控制,与其他绘图工具保持一致
- 图片添加后,点击图片左上角区域可重新编辑设置
- 图片支持导入导出功能,会保存图片路径和参数
自定义热键
- 点击工具栏上的"⚙️ 设置"按钮
- 在打开的设置对话框中修改热键
- 点击"保存"应用新的热键设置
项目结构
main.py:主程序,包含界面和交互逻辑gui.py:画布相关实现shapes.py:各类绘图形状的实现hotkey_manager.py:热键管理器hotkey_settings.py:热键设置对话框config.py:配置文件处理config.json:用户配置文件
许可
AGPL-3.0
贡献
欢迎提交问题报告、功能请求或代码贡献。
致谢
- manus
- github copilot
- claude sonnet 4
- 感谢PyQt5提供的强大GUI库
- 感谢pynput库提供的全局热键支持
Related Skills
node-connect
342.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
85.3kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
342.5kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
342.5kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
