• 请不要在回答技术问题时复制粘贴 AI 生成的内容
mgchao
V2EX  ›  程序员

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

  •  1
     
  •   mgchao · 12h 13m ago · 947 views

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

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

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

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

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

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

    这次用了什么技术

    主要是 Qt Widgets 、Rust

    • 界面和交互: 用 Qt Widgets 尽可能复刻 Ant Design 组件库
    • 截图、录屏等底层模块: 用 Rust 实现,通过 C FFI 与 C++ 对接
    • 标注绘制: 自己维护的绘图引擎,按截图标注的需求调整
    • 图形处理: Windows 和 macOS 分别做适配和优化

    界面预览

    性能这次认真补课了

    同类截图软件的内存实测

    在同一台运行 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
    • 部分软件在空闲时会调用 EmptyWorkingSet ,此后的私有工作集数值可能明显降低,不作为这里的比较依据

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

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

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

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

    有什么功能

    截图和标注

    • 矩形、椭圆、箭头、文字、马赛克等常用标注
    • 自动识别可能需要打码的区域
    • 智能擦除图片里不想保留的内容,尽量保留原来的背景
    • 水印模板、标注模板,常用内容直接复用
    • 把图像、文本等内容固定到屏幕上,方便边看边操作

    文字和表格识别

    • OCR 文字提取,可按需要配置识别模型
    • 表格提取,尽量保留行列结构
    • 借助 AI 视觉模型,把图片内容转成 Markdown 等可编辑内容

    屏幕录制

    • 划选区域后直接录制
    • 鼠标轨迹、按键显示
    • 声音录制
    • 进度条录制
    • 高帧率录制
    • 视频裁剪

    录屏效果预览

    开着 HDR ,也能好好截图

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

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

    Snipaste HDR 截图 Snow Shot HDR 截图

    • 图一为 Snipaste 的截图,图二来自 Snow Shot

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

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

    • 截取屏幕、设置选区、添加和修改标注
    • OCR 、表格识别、识别结果导出
    • 在后台打开图片,处理后保存
    • 开始、暂停、停止录屏
    • 管理贴图、模板、历史记录和设置
    • 查询、取消后台任务,读取处理结果

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

    想简单一点,也有 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 加速”开启硬件加速。

    10 replies  •  2026-10-09 02:03:12 +08:00
    cmos
        1
    cmos  
       11h 59m ago
    我之前一直用的 FastStone Capture ,一个主要原因是它有"自动捕捉滚动窗口"
    GGbeng1
        2
    GGbeng1  
       11h 45m ago
    试了一下挺好用的
    vtoo
        3
    vtoo  
       10h 25m ago
    就差 linux 了
    wayland gnome 和 kde 没有发现好的截图软件,截图按快一点就会崩溃或缺失截图(一秒两三次,连续按几秒)
    JinShu
        4
    JinShu  
       9h 54m ago
    那个固定的几个颜色 怎么自定义?
    iorilu
        5
    iorilu  
       9h 13m ago
    蛮厉害得, qt 做项目相对麻烦, 懂得都懂
    DGD
        6
    DGD  
       8h 19m ago
    用 GPUI 会好一些吗
    genesislive
        7
    genesislive  
       7h 52m ago
    没有 Linux 版本。有没有滚轮窗口选择?
    JackalZhao
        8
    JackalZhao  
       6h 7m ago
    软件挺好用的,美观度也不错,很现代化。我是 Snipaste 习惯的用户。有几点反馈。

    1. 截图框选区域之后,按下回车不能够自动的复制并关闭,需要手动按 Ctrl+C 或者右下角的图标。
    2. 从 Snipaste 切换过来,截图界面的不同图标的功能,需要熟悉,鼠标移上去,要等两秒,tooltip 才会出现,能不能让鼠标移上去就立马出现 tooltip?
    humbass
        9
    humbass  
       4h 46m ago
    macos_x86_64 编译的不对,无法使用!
    azhao678
        10
    azhao678  
       4h 13m ago
    试用一下,再来反馈,目前用的某 P
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   923 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 22:16 · PVG 06:16 · LAX 15:16 · JFK 18:16
    ♥ Do have faith in what you're doing.