MoliShot 详细介绍

最后更新:2025-05-04 · 版本 0.3.0 · macOS 14+

产品概述

MoliShot 是一款面向 macOS 的专业截图与 OCR 工具,基于 Swift、AppKit、ScreenCaptureKit 和 Vision 框架构建。它不是简单的"系统截图替代品",而是一套覆盖"捕获、编辑、识别、分享、回看"的完整屏幕信息工作流工具。

系统截图负责轻量、即时、零学习成本的场景;MoliShot 负责高频专业使用场景、跨应用信息整理和内容交付。目标用户包括产品经理、设计师、开发者、测试工程师、内容创作者、讲师和高频办公用户。

功能模块

区域截图

在当前鼠标所在显示器上进行区域选择。支持十字线框选、窗口 hover 高亮、像素级放大镜、pt/px 实时尺寸显示。快捷操作:Space 移动选区、Shift 锁定比例、Option 中心缩放。截图过程不会把 overlay 画面带进最终结果。

全屏截图

一键捕获当前鼠标所在显示器。多显示器场景下,每个显示器可独立输出文件,保持与实际显示像素一致。支持复制到剪贴板、保存到文件、进入编辑器、上传云端等后续动作。

滚动截图

使用 Vision 框架的 VNTranslationalImageRegistrationRequest 进行帧间配准,手动滚动 + 智能拼接。适用于长网页、文档、聊天记录等需要完整捕获的场景。注意:当页面滚动过快、重叠区域过少或内容抖动明显时,拼接可能失败。

标注编辑器

截图完成后自动弹出编辑器窗口。支持的标注类型:

  • 箭头 — 指向性标注
  • 矩形 / 椭圆 — 区域高亮
  • 直线 — 连接线标注
  • 画笔 — 自由绘制
  • 文字 — 支持双击重新编辑
  • 自增编号 — 步骤标注
  • 高亮 — 半透明覆盖
  • 模糊 / 像素化 — 隐私遮挡
  • 裁剪 — 调整截图范围

编辑器支持 ⌘+ / ⌘- 缩放、⌘0 适配窗口、⌘1 实际尺寸。⌘C 复制、⌘S 保存、⌘Z 撤销最后一个标注。状态栏显示当前图片尺寸、标注数量、当前工具和缩放比例。

OCR 文字识别

基于 Vision 框架的文字识别,自动检测语言。识别结果窗口支持查看与编辑,识别文本自动复制到剪贴板。当前为纯文本结果,暂不支持文字框高亮或逐块复制。

贴图悬浮 (Pin)

将截图固定为浮动窗口置顶显示,hover 时显示工具栏。适合在做设计评审、写文档时跨应用对照参考内容。

屏幕取色器

使用系统 NSColorSampler 提供原生取色体验。HEX 值自动复制到剪贴板,HUD 即时提示取色结果。

历史记录

截图自动持久化到 Application Support 目录,支持网格浏览历史记录。方便快速查找和复用过往截图。

全局快捷键

优先使用 CGEventTap 拦截截图热键;未授予辅助功能权限时自动降级到 HotKey 库。默认快捷键:

操作 快捷键
区域截图 ⇧⌘1
全屏截图 ⇧⌘3
滚动截图 ⇧⌘4
屏幕取色 ⇧⌘P
OCR 选区识别 ⇧⌘R

导出与分享

支持三种导出方式:复制到剪贴板、保存为 PNG 文件、上传到 0x0.st 生成分享链接。

偏好设置

提供快捷键列表配置、屏幕录制/辅助功能权限状态查看、历史记录路径设置等功能。

技术栈

MoliShot 完全基于 Apple 原生框架构建:

  • Swift — 主要编程语言
  • AppKit — UI 框架,窗口管理、菜单栏、编辑器
  • ScreenCaptureKit — 高性能屏幕捕获 API
  • Vision — OCR 文字识别、滚动截图帧间配准
  • HotKey — 唯一第三方依赖,全局快捷键管理(SwiftPM)

安装指南

方式一:下载 DMG(推荐)

  1. GitHub Releases 下载最新 DMG
  2. 打开 DMG,将 MoliShot.app 拖入 Applications 文件夹
  3. 首次启动时,系统会请求屏幕录制权限:进入"系统设置 → 隐私与安全性 → 屏幕与系统音频录制",勾选 MoliShot
  4. 完全退出再打开一次 App 以确保权限生效

方式二:从源码构建

# Install XcodeGen
brew install xcodegen

# Clone the repository
git clone https://github.com/gusibi/MoliShot.git
cd MoliShot

# Generate Xcode project
xcodegen generate

# Open the project
open MoliShot.xcodeproj

在 Xcode 中配置签名(Team 选你的 Apple ID),然后 ⌘R 运行。

打包 DMG

./scripts/build-dmg.sh

脚本会自动执行 xcodegen generate、Release 构建,并输出 dist/MoliShot.dmg

权限说明

  • 屏幕录制 — 必需,用于屏幕捕获
  • 辅助功能 — 可选,授予后截图时可保持目标 App 的菜单、Popover、tooltip 不被提前关闭

已知限制

  • 区域截图当前只在鼠标所在显示器启动,不支持跨显示器自由框选
  • 编辑器撤销为轻量级模型,支持取消当前操作或撤销最后一个标注,暂无完整 redo 栈
  • 滚动截图依赖手动滚动,过快滚动或重叠不足时可能拼接失败
  • OCR 为纯文本结果,暂不支持文字框高亮或逐块复制
  • 当前版本不包含录屏功能

常见问题

录屏权限反复弹窗?

不要在启动时主动调用 CGRequestScreenCaptureAccess()。确认系统设置里勾选的是当前路径下的 MoliShot(不同路径的 App 会被系统当成不同条目)。正式发布后把 App 放进 /Applications 并固定签名即可。

xcodebuild 插件错误?

执行 sudo xcodebuild -runFirstLaunch 初始化 Xcode 系统组件,或直接用 Xcode GUI 构建。

支持哪些 macOS 版本?

macOS 14 (Sonoma) 及以上版本。支持 Apple Silicon 和 Intel 芯片。

项目结构

Sources/
├── App/                 # 应用入口、菜单栏、全局协调
├── Capture/             # ScreenCaptureKit、区域选择、滚动截图
├── Editor/              # 标注编辑器、各种 Annotation 类型
├── OCR/                 # Vision 文字识别
├── Pin/                 # 贴图浮动窗口
├── ColorPicker/         # 屏幕取色器
├── Ruler/               # 尺子 / 量角器
├── History/             # 历史记录存储和浏览
├── Hotkeys/             # 全局快捷键管理
├── Preferences/         # 偏好设置窗口
├── Services/            # 上传、导出服务
└── Utilities/           # 权限、扩展、辅助函数

许可证

MoliShot 使用 PolyForm Noncommercial License 1.0.0。代码可自由查看和修改,非商业用途免费使用。