以前在Windows下使用百度或者搜狗输入法的截图工具很方便。❶快捷键(Alt+X,我设置的是这个),❷选择区域,❸编辑所选区域,包括添加文字,线条框框,调色,❹点击『✔️』选择保存位置,修改文件名保存。这个是一个完整的流程,但使用Mac OS X之后,这些都要是单独的过程:

  1. ⌘+⇧+4,选择截取屏幕,保存到桌面(这个位置可以defaults write ...来设置)

    ⌘+⇧+4(选择截图区域,保存到桌面),⌘+^+⇧+4(选择截图区域,保存到clipboard)

    ⌘+⇧+3(截图全屏,保存到桌面),⌘+^+⇧+3(截图全屏,保存到clipboard)

    这些都可以在System Preferences->Keyboard->Shortcuts->Screenshots下设置

    可以锁定宽高来截图,(Shift)锁定

  2. 双击保存的图片文件用Preview打开,点击工具栏的工具箱,添加文字,线条,各种框,各种划,截图等常用操作

    很全的功能

  3. ⌘+S保存,回车命名

    这个过程不是连贯的,很多时候截完图,图片都被窗口遮住了,要最小化很多窗口才能点到图片

[为了点到这张图,探索出不少路径]

  • 使用Terminal(我用iTerm2), open -a Terminal ~/Desktop/....png
  • 点开Finder,navigate到Desktop,找到
  • ^ + ↑切换到另外一个空桌面
  • Alfred 查找一般list的第一个就是

但是点来点去,找来找去确实烦人得很。

AppleScript是Mac OS X内置的一种功能强大的脚本语言,使用 AppleScript 的目的是把一些重复繁琐并且耗费时间的任务自动化。Mac中的Automator相当于是任务处理的一个GUI,有不少方便的components。习惯写script,还是用图形界面要看个人本阶段的能力和偏好了。


Environment

  • Mac OS X 10.11.3
  • bash 3.2.57(1)-release (x86_64-apple-darwin15)
  • zsh 5.0.8 (x86_64-apple-darwin15.0)

我们下面来完成一下类似windows的截图流程

使用Automator

Part 1 截图部分

  1. 『Alfred 2』➜ 『Automator』➜ new Workflow



  2. 搜索take screenshot,拖到右边panel



    2.1 Type[类型]选择『interactive』

    2.2 Option[选项] 『choose selection』[选择性截取]

    2.3 Save to[保存到] 『new』选择截图保存的位置

    推荐『⌘+⇧+G』选择~/Library/tmp/或者/tmp/com.customservices.screenshots/

    文件名就指定为untitled

    随便一个名字都可以,应为是作为临时文件的

Part 2 在Preview中编辑

  1. 搜索open images in preview,拖到右边panel

Part 3 选择保存位置

  1. 使用Applescript、Bash都可以的,我使用Applescript来写

    4.1 搜索applescript,拖拽『run Applescript』到右边的panel

    4.2 输入下面的脚本
on run {input, parameters}
set datetime to do shell script "date +%Y%m%d-%H%M%S" as text
-- 弹出窗口选择保存位置,也可以使用choose file或者choose file name如果想自己输入名字的话
set destDir to (choose folder with prompt "Save Screenshot to:" default location (path to desktop folder))
-- 返回alias类型
set whereto to destDir & datetime & ".png" as text
-- 现在whereto是HFS格式的路径,不是POSIX的路径(用/分割的)
do shell script "cp " & (POSIX path of input) & " " & (POSIX path of whereto) with administrator privileges user name "" password ""
return input
end run

Part 4 试运行

  1. 一步一步来看结果,右上角有step和run两种

    5.1 是一步一步地来运行,和gdb,Perl5的-d bytecounts 的 s 一样



    5.2 一次性运行完,也可以查看每步的IO

part 5 Save and Install

  1. 保存到桌面

    已经保存到了 百度云 < 4dfp >

    就是做个备份,可以后续要修改也很方便
  2. 选择菜单栏的File -> Convert to...-> Service

    .1 Save『⌘+S』弹出要你设置名字的,输入『Extended Screenshot』,确定

    这样就保存到系统~/Library/Services中了,默认的自定义服务都是保存在这里的

    .2 绑定快捷键『⌘+⇧+5』

    navigate到System Preferences -> Keyboard -> Shortcuts -> Services

    找到刚才保存的Extended Screenshot,绑定快捷键⌘+⇧+5
  3. 现在你可以使用⌘+⇧+5来感受一下了

Mac下使用Automator实现截屏编辑保存的更多相关文章

  1. Mac下打开DDMS(AndroidDeviceMonitor)白屏

    mac打开AndroidStudio下的ddms(也就是AndroidDeviceMontor)白屏,是由于jdk版本号较高不兼容导致的,因此需要将jdk降为jdk1.8.0_144就可以来了,但是要 ...

  2. Ubuntu下Vim 如何进入全屏编辑模式

    如题:F11进入全屏编辑模式,再按F11则退出全屏编辑模式.

  3. Qt实现截屏并保存(转载)

    原博地址:http://blog.csdn.net/qinchunwuhui/article/details/52869451?_t_t_t=0.28889142944202306 目前对应用实现截屏 ...

  4. Swift实现截屏并保存相册

    func saveToLocal() { //截屏 let screenRect = UIScreen.mainScreen().bounds UIGraphicsBeginImageContext( ...

  5. Selenium | 基础入门 | 截屏并保存于本地

    可先参考   Selenium | 基础入门 | 利用Xpath寻找用户框 核心代码: //截屏操作 File srcFile = ((TakesScreenshot)driver).getScree ...

  6. 一个类实现Java截屏并保存到指定文件夹

    不知小伙伴们有没有遇到过使用java来截屏的需求,截屏后保存到指定的目录,在桌面上没有任何体现,完全不知道已经被截屏了.至于截屏后怎么做,可能有的老铁只是好奇想知道某人在干啥?也有的老铁可能想进行文字 ...

  7. Mac下使用Automator实现隐藏和显示

    本文使用Makdown编辑 通常系统中打开一个文件有好多种方法,编辑也是.例如你要打开OmniGraffle来画个图(suppose you are working on the Mac OS X) ...

  8. linux下可以和qq截屏比拟的工具hotshots

    可以区域截图,并且对其进行编辑. 安装过程如下: sudo add-apt-repository ppa:ubuntuhandbook1/apps sudo apt-get update sudo a ...

  9. mac下iterm2配置安装,通过expact实现保存账号,及通过跳板登陆配置

    在参考了几款mac不错的ssh工具外,最终选择使用iterm2.本来打算用FinalShell,安装后发现其icon在访达中根本不现实,而且每次访问还需要输入管理员账号密码,强迫症根本受不了... 官 ...

随机推荐

  1. error LNK2005 int __cdecl 解决方案【转】

    error LNK2005: "int __cdecl isPtInPolygon(class std::vector<struct double2,class std::alloca ...

  2. thinkphp扩展 根据前端批量建立字段

    /*批量添加字段辅助*/ function add_colum($tabel){ foreach ($_POST as $key=>$value){ $array[] = "add & ...

  3. AWK只打印某个域后的所有域

    如转载请指明(博客http: yangzhigang cublog cn).前言:有时我们需要将某个域之后的所有域打印出来,而且每个记录(行)的域的个数也不一定,所以用$4,$5,… $n,… $(N ...

  4. [BS-06] 设置release发布时NSLog不打印设置

    设置release发布时NSLog不打印设置 前提:在XCode做开发调试时往往需要打印一些调试信息做debug用,大家知道当打印信息的地方多了之后在模拟器上跑可能不会有什么问题,因为模拟器用的是电脑 ...

  5. Android设计模式源码解析之外观模式(Facade)

    https://github.com/simple-android-framework/android_design_patterns_analysis/tree/master/facade/elsd ...

  6. Oracle数据库之PL/SQL基础

    介绍PL/SQL之前,先介绍一个图像化工具:Oracle SQL Developer 在oracle的开发过程中, 我们难免会使用第三方开发的软件来辅助我们书写SQL, pl/sql是一个不错的sql ...

  7. python待解决问题笔记

    2006, 'MySQL server has gone away' 描述:mysql服务端断开idle过期连接,而客户没有检测重连所以报错. 解决: def is_connection_usable ...

  8. javascript学习笔记之DOM与表单

    DOM(文档对象模型),猫叔了一个层次化的节点树 一.DOM NODE相关公共属性与方法 DOM中所有节点都实现了NODE接口,该接口的公共属性和方法如下: 1.节点基本属性 1)NodeType 节 ...

  9. webService调用的N种方式

    一.服务器端代码 新建一个web Service Project工程(貌似普通的java工程也可以,这里不太明白各种webService的框架有什么区别),建立如下的类: package com.bo ...

  10. java版本的sqlHelper

    以下版本的sqlHelper可以支持普通的DDL,DML和查询语句,对于连接池,事务等的支持还有待改进 1)将数据库连接相关信息存储为属性文件,如database.properties,建立DataB ...