2020年5月9日星期六

macOS 图片批处理工作流(第二弹)

macOS 图片批处理工作流(第二弹)

图片自动化处理是一个很大的话题,涉及的工具可以非常通用,比如套壳截图、体积压缩;也可以专精一个场景,例如制作圆角卡片,或者生成苹果官网风格的 Mockup 样机展示图。
事实上,大多数重复的图片处理操作都可以打包成自动化操作。我曾在《6 个小工具,打造图片批处理工作流》中分享过一些自用的图片自动化操作和思路,这次再介绍另一批:
  • Mac 套壳截图:给截图套上各种 MacBook、台式机或显示器的外壳。Mac 套壳截图
  • 多设备拼图:将各种设备的截图拼在一起,打造类似产品官网的展示效果。多设备拼图效果
  • 圆角卡片:制作带有圆角和阴影的卡片,让图片和背景区分开来的同时视觉效果也更加柔和。制作圆角卡片
  • 导出 Sketch 文件:无需打开 Sketch,快速、批量将设计源文件导出成普通图片,方便发给他人进行展示。导出 Sketch 画板
每个动作都尽可能提供了 Automator、Alfred 和 LaunchBar 等各个版本,在操作方式上尽量做到雨露均沾。不过众口也难调,动作默认的成品样式也许并不能恰好契合每一位读者的需求,所以我也会对动作的关键部分进行介绍,给想要自己改造的读者一些空间。

使用前的一点准备和注意

除了最后一个专用于 Sketch 的动作,其他动作都依靠 imagemagick 这一命令行工具。Imagemagick 被广泛用于图片处理,虽然乍看之下,作为一款「修图工具」却没有图形界面是令人难以想象的,但也正是命令行的简单灵活给了我们自定义空间,可以很方便地把 imagemagick 嵌入各种自动化工作流。
如果你还没有装过 imagemagick,推荐使用 HomeBrew 来安装它,方便日后升级维护和排查问题。
brew install imagemagick

平时和读者交流,经常有人提到动作在自己电脑上运行起来不太顺利。其实一个动作想要运行良好,需要系统、工具、动作和素材的配合,遇到某张图片无法处理时不要着急,试试通过这套方法来排查问题:
  1. 检查图片本身:换别的图片,看看是不是图本身有问题?一般图片格式、文件名空格、中文文件名这些我都已经考虑在内了,潜在问题往往在专业场景下,比如图片过大、采用 H.265 编码之类。
  2. 检查 imagemagick:通过 HomeBrew 升级或重装 imagemagick,看看是不是 imagemagick 及其组件版本的问题?作为一款开源工具,imagemagick 有很多依赖的组件,长期丢着不维护是有出错风险的。
  3. 检查自动化工具:工具本身因为权限、版本等问题也会导致运行失败,不少读者在升级到 Mojave 系统后,就出现 LaunchBar、Alfred 集体失灵的情况。大家在用的几款工具维护还是比较到位的,一般问题出来没多久,官方就会提供修复性的软件更新。
  4. 检查自动化动作:换其他同样基于 imagemagick 的动作,如果其他动作都跑得很顺,基本就是动作自己出错了,遇到这种情况欢迎即时联系我。

Mac 套壳截图

套壳截图也算是个老生常谈的话题,早几年还流行过用捷径来给手机截图套壳,很有软件官网上的展示效果,一时间蔚然成风,不过给电脑截图套壳的选择似乎不多。
给文章配图时我看着四角尖尖的 MacBook 截图实在难受,就做了一个套壳动作(并在 Power+ 1.0 中写过一篇《Mac 带壳截图》。后来我拓展了一下这一动作,让它支持不同 MacBook、iMac 和显示器的外壳,当然你也可以自己添加。
Mac 套壳截图
其中 Automator 版因为工具本身限制不能内嵌壳图素材,需要另外找地方存放,不是非常推荐。Alfred 和 LaunchBar 使用起来更加自然,选中图片后直接运行「Shell MacBook」动作,再视分辨率从弹窗中的壳图中进行选择:
  1. 在 MacBook 上直接截图时,可选择 MacBook 或 MacBook Pro
  2. 在 16:9 外接显示器上截图时,请选择台式 Mac 或外接显示器的素材
选择壳图生成带壳截图
考虑到 Mac 的截图分辨率往往很高,成批进行套壳电脑负荷有点重,不建议大批量操作。生成的截图会直接放在原图边上,原图不受影响。
除了我提供的几款壳图素材,大家也可以自己添加其他的外壳图片。首先在 Alfred 或 LaunchBar 设置中找到动作,点击「Show in Finder」移步动作源文件文件夹,把素材放进去(注意不要和原来的素材重名)。
LaunchBar 和 Alfred 的源文件文件夹
接下来的步骤有点麻烦,想自己换素材的读者需要自行测量一下截图相对于壳图素材边缘的距离。比如说想把一张 MacBook 外接显示器截图放在壳图上,就需要测量截图左上角到壳图左侧、上方两侧边缘的像素距离,像下面这样:
测量距离
测得的数据将用到 Alfred 或 LaunchBar 的脚本中。对 Shell 比较熟悉的读者可以直接照样往下新写几段,不太熟的话建议直接修改现有脚本,直接在脚本中挑一个不想要的素材,全部替换成你的新素材名称(只需要文件名,不需求前面的路径);之后,将修改过的素材距离也改一下,换上刚才的 左边距x上边距
添加完素材后需要修改几处代码
苹果官方提供的壳图素材颜色比较单一,更多素材可以在 Facebook Design 上下载,不过最新的设备可能要等一段时间。如果对于套壳截图实在感兴趣,可以到各种 Sketch 的素材资源站上淘淘素材。

多设备组合拼图

大家可能在很多都地方看到过下面这种组合图,它们往往用来展示一个应用在不同设备上的界面,苹果官网上就经常出现,一眼看上去就比孤零零的单张矩形截图要生动和专业。
苹果常用的组合套壳截图
如果向别人介绍应用或者展示操作的时候也能用上这种拼图,同样可以让自己的展示效果更有个性。
这样的图制作起来倒不难,基本上的修图工具都可以用来完成拼接工作。问题是一步简单的叠放、拼接,有点让人怀疑是否有必要——导入导出的操作有点大动干戈,而且一些轻量矢量图工具(比如 Sketch)导出时还必须留个心眼设置二倍分辨率,不然会成品会糊掉。
考虑到多设备拼图视觉效果确实不错,平时用得也不算少,我就做了一套动作来简化制作流程,可以做到这头把 iOS 和 Mac 的带壳截图丢进去、那头就自动生成拼好的图片
多设备拼图效果
先要对没有第三方自动化工具的读者说声抱歉的是,这套动作似乎在 Automator 会出现问题不能解析图片而暂停运行,不过其他自动化工具中跑起来倒没出现类似情况。各版本的使用方式是:
  • LaunchBar 版:选中两张素材图片,通过 Instant Send 发送到 LaunchBar,再输几个触发词(推荐 ios mac,估计这套触发词组合不容易和你的动作冲突)找到「image Concact iOS+Mac」动作,运行即可。用 LaunchBar 进行拼图
  • Alfred 版:同样选中素材,按下快捷键 ⌥Option-⌘Command-\ 准备多文件处理,输入「image Concact iOS+Mac」动作名一部分应该就能看到它了,同样回车运行。用 Alfred 进行拼图
为了不挡住电脑截图的主要内容,手机截图的位置可以进行微调。运行动作后会询问你要把手机截图往右侧移动多少像素,默认情况下是移动 100 像素,如果担心还是会遮住下方内容,可以自己调高一些。
可以自己微调摆放位置
另外,现在手机的分辨率非常高、宽度几乎能顶上半个电脑屏幕,直接拿来拼图显然有些夸张,作为参考,在和宽度 2560 像素的全屏截图搭配时手机截图最好先等比缩小到 700 宽度上下(可以使用我以前制作的一个 尺寸调整动作)再进行拼图。我没有写死的原因是大家的设备尺寸都不一样,有些读者可能还有分辨率更高的外接显示器,所以就把尺寸调整的步骤留给了各位。
实现方式上,拼图动作其实模仿了我们手动操作的步骤,大致分以下几步:
  1. 判断图片是手机截图还是电脑截图:通过长宽对比来判断,绝大多数情况下长度更大的是手机截图。通过这组判断,拼图动作允许大家选中素材一股脑丢进去,不再需求考虑先放哪个。
  2. 扩大电脑截图的画布尺寸:直接把两张截图叠起来时,上方图片超出下方的部分会被裁掉,这一下子就让成品不堪入目了。为了避免裁剪的情况发生,动作会根据电脑截图宽度和上方截图需要调整的尺寸自动调整整体画布大小,不让素材溢出到外面。
  3. 进行截图拼接:为了模仿苹果的摆放效果,我把 iOS 设备截图放在了整体图片的右下角,你可以试着修改其中 southeastsouthwest 左下角,其他方位以此类推。要注意如果换作摆到左边,-extent 前面要加上 -gravity east ,毕竟方向翻过来了,画布调整的方向也要跟着变动(参考)。
像前面这样分解开后,每个命令也不过是 imagemagick 中的基础零件,差不多一条命令对应我们的一步手动操作;一旦根据我们的需要把各个单条命令串连起来,就能三步并作两步快速完成图片处理,其中的成就感越是机械工作多的人越能体会。
将 iPad 和 iPhone 截图组合在一起
虽说出发点是像模仿苹果的展示效果,实际用起来不必拘泥于电脑截图,窗口截图、iPad 带壳截图也可以充当拼图素材,总之希望在一张图里统一展示多平台效果时,就可以考虑这个拼图动作。

制作圆角卡片

再来看一个制作带阴影圆角卡片的动作。
制作圆角卡片
Sketch 专业作者 @WATERS 曾经问我有没有办法快速制作圆角卡片,我原先以为这只是一种见仁见智的设计风格(圆角卡片在 iOS 10 之后忽然流行起来),自己试过之后才发现它的视觉效果确实很出众:阴影区分开了图片和背景,圆角让整体柔和不突兀,处理过的图片就像一张精致的卡片浮在页面上
处理前后对比
这样的效果用 Sketch 实现起来确实比较麻烦,需要靠蒙板裁裁剪剪,处理大批图片时尤其折磨人。好在制作流程是比较固定的,无非四角裁好、加点阴影,所以我把这些操作抽离出来通过 imagemagick 实现了一次,实现了批量操作。裁好的图片会以新文件的形式放在原图旁边,中途需要产生几个临时文件,不过最后都会被自动清除掉。
制作圆角卡片
这个动作没有太大的自定义空间,圆角弧度、阴影尺寸等细节只要没遇上 4K、5K 分辨率的夸张截图,一般看上去还比较协调。下次如果嫌弃截图看上去惨白一片,可以试试把它们转换成更生动一些的圆角卡片。
另外提醒一下,比起压缩体积、转让格式这些常规操作,制作圆角卡片的动作使用率估计不会太高,比较推荐安装 Automator 版本,可以避免占用启动器工具的位置。我的使用方式是把常用操作放 LaunchBar 里,敲几个首字母就能找到;偶尔一用的动作放右键菜单或快速操作,平时不出来打搅工作。
启动器 LaunchBar 和右键菜单分工

导出 Sketch 画板

最后一个动作是将 Sketch 源文件导出为普通图片。剪辑视频的人喜欢打趣「后期一时爽,导出火葬场」,其实做图也有类似情况,导出成品这一步原本应该很有成就感,但是重复的参数选择、点按操作以及大文件的卡顿都让人觉得乏味。
之前给写作课和付费教程配图的时候1
 ,往往一画就是十几张,好不容易和同事们相互确认完可以定稿,结果还得一份一份导出来,挺让人沮丧。
我最常用的做图工具是 Sketch,它自带了一套图品处理命令,其中也包含了导出成品的功能,正合我意。
Sketch 的命令行工具
批量选中 .sketch 源文件后运行「Export Artboard」动作,即可获得一批以画板为文件名的成品图片。再次提醒一下 Alfred 的文件批量操作快捷键是 ⌥Option-⌘Command-\,它不像 Automator 或 LaunchBar 那样会主动处理多个文件,需要你指明批量操作模式。
导出 Sketch 画板
如果 Sketch 文件中没有创建画板,这个动作是没法凭空变出东西来的,运行后没看到图片的话最好检查一下源文件是否。不习惯使用画板的可以在终端 Terminal 中输入以下代码,根据 Sketch 命令行供工具的说明文档改造一个符合习惯的动作。
/Applications/Sketch.app/Contents/Resources/sketchtool/bin/sketchtool

这个动作是为 Sketch 用户定制的,不过思路也可以参考一下用到其他图片处理工具中。Photoshop、Illustration 和 Pixelmator Pro 等工具都支持 Automator 或者 AppleScript,同样可以把部分机械操作简化为自动化动作。

  • 1


没有评论:

发表评论