MacPilot Screenshot & OCR 是一项 macOS 技能,用 MacPilot 截取屏幕、特定区域或应用窗口的截图,并使用 Apple 内置的 Vision OCR 从图片或屏幕区域中提取文字。
用途
适用于以下场景:需要截取当前屏幕内容;需要从图片文件中提取文字;需要读取屏幕特定区域的文字;需要截取某个应用窗口;需要验证应用的视觉状态;需要录制屏幕。
截图命令
全屏截图:
macpilot screenshot --json # 截取到临时文件 macpilot screenshot ~/Desktop/screen.png --json # 截取到指定路径 macpilot screenshot --with-permissions --json # 直接使用 CGWindowListCreateImage
指定区域:
macpilot screenshot --region 100,200,800,600 --json
区域格式:x,y,width,height(从左上角开始)
指定窗口:
macpilot screenshot --window "Safari" --json # 截取 Safari 窗口 macpilot screenshot --window "Finder" --json # 截取 Finder 窗口
全部窗口:
macpilot screenshot --all-windows --json # 每个窗口单独截取
指定显示器:
macpilot screenshot --display 1 --json # 第二个显示器(从 0 开始索引)
格式选项:
macpilot screenshot --format png ~/Desktop/shot.png # PNG(默认,无损) macpilot screenshot --format jpg ~/Desktop/shot.jpg # JPEG(文件更小)
OCR 命令
从图片文件提取文字:
macpilot ocr scan /path/to/image.png --json macpilot ocr scan ~/Desktop/screenshot.png --json
从屏幕区域提取文字:
macpilot ocr scan 100 200 800 600 --json
参数:x y width height(先截取区域再进行 OCR)
多语言 OCR:
macpilot ocr scan image.png --language en-US --json # 英语 macpilot ocr scan image.png --language ja --json # 日语 macpilot ocr scan image.png --language zh-Hans --json # 简体中文 macpilot ocr scan image.png --language de --json # 德语 macpilot ocr scan image.png --language fr --json # 法语
OCR 点击(在屏幕上查找并点击文字):
macpilot ocr click "Submit" --json # 在屏幕上查找文字并点击 macpilot ocr click "OK" --app Finder --json # 在指定应用中点击文字 macpilot ocr click "Accept" --timeout 10 --json # 重试直到文字出现(10 秒)
OCR 点击会先截图、执行 OCR、查找匹配文字(不区分大小写),然后点击其中心坐标。可用 --timeout 轮询重试,等待文字出现。
屏幕录制(ScreenCaptureKit)
开始录制:
macpilot screen record start --output ~/Desktop/recording.mov --json macpilot screen record start --output rec.mov --region 0,0,1920,1080 --json # 区域 macpilot screen record start --output rec.mov --window Safari --json # 窗口 macpilot screen record start --output rec.mov --display 1 --json # 显示器 macpilot screen record start --output rec.mov --audio --json # 带音频 macpilot screen record start --output rec.mov --quality high --fps 60 --json # 画质
控制录制:
macpilot screen record stop --json # 停止并保存 macpilot screen record status --json # 检查是否正在录制 macpilot screen record pause --json # 暂停录制 macpilot screen record resume --json # 恢复录制
画质选项:low(1 Mbps)、medium(5 Mbps,默认)、high(10 Mbps)。FPS 默认:30。
显示器信息:
macpilot display-info --json
返回:所有显示器及其分辨率、位置、缩放因子
工作流模式
一次流程完成截图与 OCR:
截取指定区域
macpilot screenshot --region 0,0,1920,1080 ~/tmp/capture.png --json
从中提取文字
macpilot ocr scan ~/tmp/capture.png --json
快速对屏幕区域 OCR:
直接对屏幕区域做 OCR,无需保存
macpilot ocr scan 200 100 600 400 --json
查找并点击文字(无需计算坐标):
无需 截图 > OCR > 解析 > 点击,直接:
macpilot ocr click "Submit" --json macpilot ocr click "Next" --timeout 5 --json # 最多等待 5 秒文字出现
验证 UI 状态:
截取窗口查看当前状态
macpilot screenshot --window "Safari" ~/tmp/safari.png --json
读取图片以验证内容
macpilot ocr scan ~/tmp/safari.png --json
录制一段自动化流程:
macpilot screen record start --output ~/Desktop/demo.mov macpilot app open Safari macpilot wait seconds 2 macpilot keyboard key cmd+l macpilot keyboard type "https://example.com" macpilot keyboard key enter macpilot wait seconds 3 macpilot screen record stop
提示
需要在系统设置中为 MacPilot.app 授予屏幕录制权限。
含有文字的截图建议使用 PNG 格式(无损);照片建议使用 JPEG。
OCR 在高对比度文字上效果最佳;若文字较小,可增大截图区域。
截取特定区域前,可用 display-info 获取屏幕尺寸。
坐标系统以左上角 (0,0) 为起点,x 向右递增,y 向下递增。
在 Retina 显示器上,坐标使用逻辑点(而非物理像素)。