拥有超丰富功能的开源截图软件,使用 Qt Widgets + Rust 实现,高性能+低内存+低功耗!

4 小时 15 分钟前
 mgchao

各位佬好,分享一下自己做的开源截图软件 Snow Shot

之前花了一年做了第一版,这次又花了一年,把它从头重写了一遍

老版本基于 Tauri ,平时挂在后台就要占五六百 MB……确实有点夸张

所以这次重写,最先想解决的就是内存占用

先放一个新版的实测结果:初始状态下,初始状态下,私有工作集内存约 9.7 MiB,完整数据和测量条件放在下面

原来的界面风格保留了下来(从 Web 组件库一步一步迁到 Qt ,挺不容易的……),截图响应、选区动画和标注绘制都彻底重做了

这次用了什么技术

主要是 Qt Widgets 、Rust

界面预览

性能这次认真补课了

同类截图软件的内存实测

在同一台运行 Windows 26H2 的电脑上,用 VMMap 记录了三个软件主进程的内存

测试使用单台 4K 显示器,捕获区域略小于 3840 × 2160

每个软件分别记录初始状态、通过托盘触发截图 10 次后,以及截图并贴图 10 次后的数据

以下均为单次快照,单位为 MiB

私有提交内存、总工作集和私有工作集分别列出,前面提到的 9.7 MiB 对应最后一列

软件 测量状态 私有提交内存( Private Bytes ) 总工作集(驻留 RAM ) 私有工作集
Snow Shot 初始状态 15.45 46.17 9.68
Snow Shot 截图 10 次后 22.39 62.84 16.11
Snow Shot 截图贴图 10 次后 32.03 81.43 24.33
Snipaste 初始状态 33.53 76.45 26.00
Snipaste 截图 10 次后 34.29 83.24 26.75
Snipaste 截图贴图 10 次后 102.54 152.66 94.96
某 P 初始状态 70.23 91.09 32.67
某 P 截图 10 次后 136.06 127.80 65.99
某 P 截图贴图 10 次后(重启后)* 180.01 177.11 106.43

绘制上主要加了局部重绘和缓存:尽量只更新变化的区域,减少重复计算和绘制,选区过渡动画、拖动和标注响应也重新调整过

笔记本上的功耗也有考虑,这次采用了软件渲染,减少不必要的刷新

录屏则在支持的设备上使用 GPU 处理和硬件编码

之前因为卡顿或者占内存卸载过的佬,欢迎回来再试试

有什么功能

截图和标注

文字和表格识别

屏幕录制

录屏效果预览

开着 HDR ,也能好好截图

用 HDR 显示器的佬可能遇到过:屏幕上看着正常,截出来却发白、过曝,发图之前还得先去关 HDR

这次重新做了截图和录屏的 HDR 处理,尽量减少过曝、发白的问题,下面放两张开启 HDR 时的截图作对比:

Snipaste HDR 截图 Snow Shot HDR 截图

通过 MCP 调用截图、OCR 和录屏

Snow Shot 支持 MCP ,可以接入支持 MCP 的 AI 客户端,也可以自己写程序调用,接口包括:

比如把“截图 → 标出重点 → 保存”串起来,或者批量打开图片、提取文字、导出结果

想简单一点,也有 Snow Shot Mini

如果只是想截个图、画个箭头,上面不少功能确实用不上,所以这次还做了 Snow Shot Mini

Mini 和完整版共用同一套底层,保留截图、标注、贴图、录屏这些日常功能,精简了表格识别、翻译、图片转文档等扩展能力

OCR 入口默认隐藏,需要时可以在设置里开启手动 OCR ,相关模型按需下载

两版可以按使用需求选:

使用需求 版本
经常提取表格、翻译、把图片转成文档 Snow Shot
主要截图、标注、贴图,偶尔录屏或提取文字 Snow Shot Mini

开源、免费范围和平台支持

Snow Shot 和 Mini 的软件功能都免费,源码也公开,下面整理了和 Snipaste 、某 P 在授权和平台支持上的区别:

对比项 Snow Shot / Snow Shot Mini Snipaste 某 P
开源状态 开源,应用采用 GPL-3.0-or-later,可查看、修改和编译源码 闭源,按官方许可协议授权使用 闭源,按官方服务协议授权使用
免费范围 各版本提供的软件功能均免费,无需会员解锁; Mini 按使用需求精简功能 基础功能可免费用于个人用途;部分进阶功能需购买 PRO 大部分功能免费;表格识别、录屏键鼠显示、录制后剪辑等需会员
公司 / 商业场景使用 无需购买软件使用授权 2.x 需购买 PRO ; 1.x 可免费用于个人和商业场景 免费版也可在公司内使用
桌面平台支持 Windows 、macOS(均支持 Arm64 和 x64 ) Windows 、macOS 、Linux Windows 、macOS

项目地址

这次重写用到了 Qt 、Rust 、RapidOCR 、FFmpeg 等开源项目,感谢这些项目的维护者,也欢迎大家给 Snow Shot 提 issue 或参与开发

官网:snowshot.top
下载:GitHub Releases
源码:GitHub

OCR 速度问题

重写后的 Snow Shot 在默认配置下会比旧版的识别更慢,可以开启“常驻识别进程”和“模型热启动”以加快 OCR 识别速度。如果是独立显卡的话,还可以尝试开启“DirectML 加速”开启硬件加速。

532 次点击
所在节点    程序员
6 条回复
cmos
4 小时 1 分钟前
我之前一直用的 FastStone Capture ,一个主要原因是它有"自动捕捉滚动窗口"
GGbeng1
3 小时 47 分钟前
试了一下挺好用的
vtoo
2 小时 27 分钟前
就差 linux 了
wayland gnome 和 kde 没有发现好的截图软件,截图按快一点就会崩溃或缺失截图(一秒两三次,连续按几秒)
JinShu
1 小时 56 分钟前
那个固定的几个颜色 怎么自定义?
iorilu
1 小时 15 分钟前
蛮厉害得, qt 做项目相对麻烦, 懂得都懂
DGD
21 分钟前
用 GPUI 会好一些吗

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1247135

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX