对 iOS 上的图片处理,我同样天真得认为 iOS 商店里那么多有名的没名的应用,总能找出一两款出来满足这些「并不苛刻」的要求。为了满足四点需求,尝试用 "Metadata Removal","Photo Resize", "Picture Compression/Shrink","Batch Process" 这些关键词大搜一通,下的下,买的买,竟没有一个满意的。 好一点的 App 只能满足单一的需求,比如 Metapho,可以查看和删除相片的 Metadata,却无法对照片进行尺寸修改和画质压缩。更多的是那些稀烂的 App,感觉是业余开发者写的,不是闪退,就是无法读取 iOS 相册,再或者无限死循环转菊花。这些 App 有几个共同点:交互界面设计大都停留在 iOS 4 时代;长久不更新;底下评论寥寥。

这么着耗了几天也没得出满意的方案,感觉快放弃了,此时一款被放在 " Least Frequent " 文件夹最不显眼位置的应用引起了注意 — Workflow

Workflow 是绕过大脑审核购买的 App, 当时认为是 iOS 上的 Automator,至于使用场景,没想。买完便撂一旁打入冷宫,毫无研究。这次是因为需要自动化批处理才想到的。打开 Workflow,选择 Action Extension , 切到底部的 Actions ,找到三条动作:Convert Image - Resize Image - Save to Photo Album , 按次序拖拽进右边的 Workflow 页面,完美搞定!正好满足下面四条需求:

  1. 图片质量压缩
  2. 图片尺寸缩小 (Resize)
  3. 移除照片内的 Metadata / EXIF
  4. 支持自动化批处理


在 Convert Image 中,有丰富的选项可供选择。

  1. Preserve Metadata 当然不选,压缩时直接把 EXIF 去掉。有需要的话也可以选择保留。

  2. Quality 是图片压缩质量,它并不牵涉修改分辨率。可以选定一个固定的值,也可以选择 Ask When Run , 在处理时按个 Prompt 手动修改。

  3. Format 的选项更多,对我来说一般就 JPEGPNG 或按个手动选择 Ask When Run

Resize Image

这个按照网页或者自己的实际需求填入以像素为单位的数值。我的主页宽度 890px,默认 900px 够了。Resize Image 默认是固定比例长宽 ,因此只需要改一个数值就行。同样,也可以选 Ask When Run

Save to Photo Album

如果像我一样疏于管理相册放任自流,请不要选择 Photo Album ,把所有处理的结果保存到 Workflow ,方便查看。没有的话自建一个。


这三个动作的方便之处在于给定设定后完全自动批处理,只要在 iOS 相册中多选并打开 Action Extension ,选择 Run Workflow ,Workflow 会让你选择想调用的流程, 自动把处理结果作为新文件保存到相册最后。我最多一次压缩了 50 多张照片,没任何问题。

如需把处理完的文件传到 Mac 上,可以在 Actions 里面找到 AirDrop 这个动作,拖拽到一旁的流程, Mac 上瞬间能收到处理完的结果。反之,想批处理 Mac 上的图片,只需 AirDrop 到 iOS 相册,选定后运行 Workflow 把输出结果再 AirDrop 回 Mac 就行。

同时还可以选 Normal 在 Workflow 内新建流程,它与 Action Extension 区别在于 Normal 必须进 Workflow 应用内选择照片进行处理;Action Extension 只要在 iPhone / iPad 相册中选定照片调出 Run Workflow 直接处理。对我来说当然更喜欢后者。

如果需要处理大量截屏之类的 PNG 文件,或者只要删除 Metadata 不用压缩的,还有因为每次处理横向或纵向的照片无法通用一个 Resize 宽度的,可以多建几个 Action Extension , 调用 Run Workflow 后任意选择。要是实在无法固定参数,Ask When Run 是个好主意。

终于, iOS 上出现了完全满足四个需求的 One-stop 解决方案,比 OS X 更 Anywhere !