不得不说,mac的命令行好用。除了因为继承UNIX而保持shell命令的一致外,osx还对命令行对了一些扩展,使其更好的与系统本身合作无间。比如open filename就可以使用系统默认程序来打开这个文件。今天知道了screencapture,更是觉得方便。

使用方法:

screencapture -i test.png

执行后会调用系统默认的截图程序,也就是按cmd-shift-4出来的那个截图程序。截图完毕后,会保存到test.png中。

-i模式默认是自由模式,按一下空格键,可以在自由模式和窗口模式间切换。按下control键,截图就不会保存到文件中,而是保存到剪贴板中。

screencapture命令的其他选项:

-c         强制截图保存到剪贴板而不是文件中
-C         截图时保留光标(只在非交互模式下有效)
-d         display errors to the user graphically(不知道啥意思)
-i         交互模式截取屏幕。可以是选区或者是窗口。
             control key - 截图保存到剪贴板
             space key   - 在鼠标选区模式和窗口模式间切换
             escape key  - 退出截图
-m         只截取主显示器(-i模式下无效)
-M         截图完毕后,会打开邮件客户端,图片就躺在邮件正文中
-o         在窗口模式下,不截取窗口的阴影
-P         截图完毕后,在图片预览中打开
-s         只允许鼠标选择模式
-S         窗口模式下,截取屏幕而不是窗口
-t<format> 指定图片格式,模式是png。可选的有pdf, jpg, tiff等
-T<seconds> 延时截取,默认为5秒。
-w         只允许窗口截取模式
-W         开始交互截取模式,默认为窗口模式(只是默认模式与-i不同)
-x         不播放声效
-a         do not include windows attached to selected windows(不懂)
-r         不向图片中加入dpi信息
-l<windowid> 抓取指定windowid的窗口截图
-R<x,y,w,h> 抓取指定区域的截图
-B<bundleid> 截图输出会被bundleid指出的程序打开

在你的程序中,只要简单的调用这个命令,就拥有了牛逼的截图功能了


木杉
166 声望3 粉丝

福州程序员