AirSnip 轻截:1 MB 的 Windows 截图标注工具(Rust,纯 CPU 渲染,待机 0% CPU)
The project's README from github.com/bd-dxg/airsnip. As one markdown file: README.md.
1 MB 的 Windows 截图标注工具。 常驻内存 1.2 MB、待机 0% CPU、按热键 0.12 秒出画面—— 标注、二次编辑、长截图、贴图、多格式另存,功能一样不少。
纯 CPU 渲染,不依赖 GPU、不套 Electron、不装运行时。解压即用的绿色单文件,在核显迷你主机、虚拟机、远程桌面里同样流畅。

按 F1 后的样子:屏幕冻结、框选任意区域,底部一行就是全部标注工具。
| 指标 | 实测 | 说明 |
|---|---|---|
| 单文件体积 | 1.06 MB | 绿色免安装,一个 exe 就是全部 |
| 下载包 | 0.61 MB | zip,含文档与许可证 |
| 待机内存 | 1.2 MB | 常驻托盘时的 Private Working Set |
| 待机 CPU | 0.00% | 事件驱动,无定时轮询 |
| 热键 → 可用画面 | 124 ms | 2560×1440:全屏抓取 + 暗化 + 覆盖层就绪 |
| 拖框重绘 | 4.6 ms / 帧 | 60 FPS 红线 16.7 ms,留有 3 倍余量 |
截图会话期间会按屏幕大小临时分配位图(1440p 约 15 MB),退出覆盖层立即释放——不截图时它几乎不占资源。 数据来自真实目标机型(无独显)实测,方法与优化过程见
docs/perf-m5.md。
为什么能这么小: 没有 Electron / WebView / .NET 运行时,界面与标注全部由 Rust 直接绘制(tiny-skia 矢量栅格化 + DirectWrite 文字),抓屏走 GDI BitBlt,常驻部分只做「等热键」一件事。不少同类工具自带运行时或基于 Electron,安装包在数十至上百 MB、常驻内存数百 MB 量级——AirSnip 把这两项都压到了 1 MB 量级。
F1 触发:全屏冻结 → 框选(八向缩放、按住空格整体拖动、方向键 1px 微调 / Shift 5px)| 工具 | 能做什么 |
|---|---|
| 矩形 | 描边颜色、线宽、填充、圆角 |
| 箭头 | 直线或曲线(三次贝塞尔),头部随线宽缩放;Shift 吸附水平 / 垂直 / 45° |
| 文本 | 中文输入法、系统全部字体、粗体 / 斜体、字号,双击再编辑 |
| 荧光笔 | 正片叠底半透明色块,不遮挡底图文字 |
| 高斯模糊 | 拖动区域即模糊,强度滚轮可调 |
| 聚光灯 | 选区内整体暗化、绘制区域恢复原亮,可叠加多块 |
曲线箭头:选中后 1/3、2/3 处出现控制柄,拖出 S 形,双击恢复直线。 矩形、荧光笔、模糊、聚光灯都支持圆角:拖包围框内侧角的小圆柄即可,所见即所得。
Shift 等比)Shift 约束:新建时正方形、箭头方向吸附,编辑时轴向锁定、等比缩放CF_DIB + 延迟渲染 PNG,粘到微信 / 文档 / 聊天框都不失真airsnip-20241231-235959 / 时间戳 / 仅日期;记住上次目录与格式,连拍不打断Enter 收尾,Ctrl+Z 可撤销最后一段F3 把选区(含标注)钉在屏幕上,随时对照Ctrl+滚轮调透明度、1px 蓝框、右键菜单截图界面(覆盖层):
| 按键 | 动作 |
|---|---|
Enter / Ctrl+C / 选区内双击 |
复制到剪贴板并退出 |
Ctrl+S |
另存为(PNG / JPEG / WebP) |
F3 |
把选区贴到屏幕 |
S |
长截图(当前选区为视口) |
1–6 |
切换工具(矩形 / 箭头 / 文本 / 荧光笔 / 模糊 / 聚光灯,可改) |
Ctrl+Z / Ctrl+Y · Ctrl+Shift+Z |
撤销 / 重做 |
方向键(Shift ×5) |
微调选中对象;无选中时移动选区框 |
Shift + 拖动 |
正方形 / 箭头方向吸附 / 轴向锁定 / 等比缩放 |
| 按住空格 + 拖动 | 移动整个选区 |
| 滚轮 | 调线宽 / 模糊强度 / 字号(悬停对象或空白处) |
Esc |
取消截图 |
贴图窗口:左键拖动、滚轮缩放、Ctrl+滚轮透明度、双击 / Esc 关闭、右键菜单、Ctrl+F3 边框开关、方向键移动。
全局热键默认 F1 截图、F3 贴图,可在设置面板修改;无修饰键会抢占其他程序按键,建议用 Ctrl / Alt 组合。
airsnip-v*-win-x64.zip,解压到任意目录(绿色单文件,无需安装)airsnip.exe:程序需要管理员权限(否则无法覆盖管理员权限的窗口,见 ADR 0003),首次运行会弹 UAC,请选「是」F1 截图 / F3 贴图%APPDATA%\airsnip\config.toml首次运行提示:exe 未做代码签名,Windows SmartScreen 可能提示「已保护你的电脑」——点「更多信息」→「仍要运行」。
从旧版 jietu(v0.5.0 及更早)升级:本版改名为 AirSnip,不做自动迁移,请手动完成三件事——
schtasks /delete /tn jietu /fjietu.exe:新旧版的单实例互不排斥,同时运行会抢同一组热键%APPDATA%\airsnip\config.toml);旧截图仍在 图片\jietu,不会自动搬家cargo run # 开发版(不提权,可调试)
cargo build --release # 发布版(manifest 要求管理员权限,单文件)
cargo test # 单测(186 项)
cargo fmt --check # 格式化检查
cargo deny check # 依赖许可证 / 安全公告 / 来源检查
pwsh scripts/package.ps1 # 打包 dist\airsnip-v{版本}-win-x64.zip
技术栈:Rust 1.98(edition 2024)、windows-rs 0.62、tiny-skia 0.12(矢量栅格化)、DirectWrite(文字)、serde / toml、png / jpeg-encoder / image-webp。当前版本 v0.6.0。
screenshot-tool-PRD.md — 完整需求与技术方案(性能红线、风险对策)docs/adr/ — 架构决策记录docs/perf-m5.md — 性能实测数据与优化过程THIRD-PARTY.md — 第三方组件声明Task/task_plan.md · Task/progress.md · Task/findings.md — 开发计划、会话进度、技术踩坑GPL-3.0-only。源文件均带 SPDX 标注;依赖均为宽松许可证(MIT / Apache-2.0 / BSD / Zlib / IJG 等),与 GPL-3.0 兼容。
感谢 LinuxDo 社区
AirSnip 轻截:1 MB 的 Windows 截图标注工具(Rust,纯 CPU 渲染,待机 0% CPU)