在 OS X 下,我需要截取同一特定屏幕区域的屏幕截图。我知道我可以按热键来截取整个屏幕或屏幕的某个区域,但我总是必须选择它。
我可以将 OS X 配置为始终对屏幕的同一部分进行截图吗?
答案1
您可以使用screencapture
命令行实用程序。它包括(除其他外)以下选项:
-x do not play sounds
-R<x,y,w,h> capture screen rect
files where to save the screen capture, 1 file per screen
因此,就您而言,要抓取左上角为 20/20 的屏幕截图,创建一个 640x380 的窗口:
screencapture -x -R20,20,640,380 ~/Desktop/test.png
您可以将此命令放入您的程序中,crontab
使其重复执行,或者简单地使用在终端窗口中运行的循环。在这种情况下,我们将每秒创建一个屏幕截图(sleep 1
),输出文件将相应地命名screen_YYMMDDTHHMMSS
。
while [ 1 ]; do
date=$(date "+%Y%m%dT%H%M%S")
screencapture -x -R20,20,640,380 ~/Desktop/"screen_${date}.png"
sleep 1
done
您还可以创建 Automator 操作或 AppleScript 来运行上述 Shell 脚本。例如,打开脚本编辑器,然后粘贴此内容:
do shell script "date=$(date '+%Y%m%dT%H%M%S'); screencapture -x -R20,20,640,380 ~/Desktop/screen_${date}.png"
它看起来应该是这样的:
保存该脚本并使用快速脚本轻松分配键盘快捷键。
答案2
如果您愿意使用应用程序/实用程序,我强烈推荐 Skitch:
它有一个“上一个快照区域”的快捷方式。
(此外,您可以使用计时器捕获选择,捕获整个屏幕、仅捕获窗口或仅捕获菜单。)
它是免费的,并且具有大量功能,包括编辑/注释、快速简便的共享等。
答案3
不确定这是否在较新的 macOS 版本中引入,但现在只需使用cmd + shift + 5
,选择所需区域,然后从下面的工具栏中选择“捕获选定部分”。选择区域一次后,它在后续的屏幕截图调用中保持完全相同。
答案4
摘自我自己的回答询问不同
您现在可以本地执行此操作,Apple 添加到以前的捕获命令中 Cmd ⌘ Shift ⇧ 3 并 Cmd ⌘ Shift ⇧ 4 通过添加 Cmd ⌘ Shift ⇧ 5 [此功能已在 Mojave 中添加。]
这将在屏幕上直接显示屏幕截图过程的所有首选项。如果您选择特定区域,则每次触发时它都会返回到同一区域 [& 在选项按钮中选择首选项],直到您更改它。您可以使用“捕获”按钮或 Return/Enter 键进行截图。否则它会等待您。您还可以添加计时器、更改位置等,这些操作以前必须从终端访问。
我调整了此截图中的窗口位置,以便您可以在同一张照片中看到两者。
顺便说一句,您可以使用 Cmd/Shift/3 截取屏幕截图机制