# 续·自制证件照，兼再论 Shortcuts 的字典

> 本文开放前 70% 正文，剩余内容会员可见。

原文：https://utgd.net/article/20863

> Data is more tractable than program logic\. It follows that where you see a choice between complexity in data structures and complexity in code, choose the former\. More\: in evolving a design, you should actively seek ways to shift complexity from code to data\. Eric S\. Raymond

许多直面真实生活的自动化小工具，往往更能以小见大。《用 Shortcuts 更换证件照背景，可自定义图片》一文发出后，遂有读者希望增加一项调整证件照尺寸的功能——不少平台有尺寸要求，不符者无法上传——这无疑是对自动化的最高褒奖：确有人将其作为工具，而非玩具。

不过，我并未马上着手改进，盖增加功能本非难事，无非挂上一连串冗长的步骤，恐怕无甚技术含量。在多篇文章中，我甚至刻意拒绝，将长尾工作留给读者自己，因为我无意做一个满足世上所有需求的工具，这只会让原本轻快的工具变得沉重，维护也变成一场噩梦——想想那些几百个步骤的 Shortcuts 动作！

惟此番例外。一个可以给所有 Apple 设备套壳的动作对任何一个特定使用者来说都很可笑，毕竟正常人通常只有一两只手机、一台电脑外加一片儿 iPad，我不知道多出来的那几百套素材除了让他手机死机，还有何意义；但一个预设了多种标准尺寸的证件照制作工具则确有必要，你保不齐哪天就遇到一个严格要求 295x413 像素照片的网站，而你身边只有一台手机，最后搞得鸡飞狗跳。

碰巧，预设尺寸恰好可假借字典模块，最终只比原动作多出两三步，整套动作依旧规整。遂再作此篇，分析如何自制证件照的同时，也回顾潜力难量的字典模块。

- Shortcuts 动作下载

- GitHub 保持更新

## 使用简介

相较原版，新动作加入选择照片尺寸这一环节，整体并无太大改动。若无需更改尺寸，也可以保留原始大小。

为避免自动裁剪误伤您的面容，我将自动裁剪改为手动调整，您可以（需要）手动拉伸和挪动照片，或露出半身、或只留至领口，直至体面且符合所提交机构的要求。你甚至可以取一张正面拍摄的全身像——只要着装、角度和像素都符合要求——再从中裁出证件照。

惟需注意，手动调整时若以两指拉伸，难免不慎旋转照片，此时可点击编辑页面中的“还原”按钮，即可摆正照片角度而不影响大小，随后可单指移动照片，微调位置，确保对称。

## 原理简析

以传统的 Shortcuts 制作思路，你可能会经历下面的灾难式交互体验奥德赛之旅：

- 您是否需要更换背景？

- 如果需要，使用预设背景还是自定义背景

- 如果使用预设背景，具体是哪个？自定义背景呢？

- 您是否需要调整照片尺寸？

- 如需要，您需要调整宽度到多少像素？

- 如需要，您需要调整高度到多少像素？

- 您需要保持宽度裁剪，还是保持高度裁剪？

- ……

这就是我不愿马上修改动作的原因：若引入大量判断，把一个轻巧的动作变成反复骚扰使用者的哈尔机器人，不如不做。当然，原版动作已经消除了大量判断，现在的问题只是：如何加入尺寸选择，并保持动作轻量？答案还是字典。

在原版动作中，我就用字典存储了几张内置的背景图片，包括一张蓝色渐变的背景素材，比纯色背景看上去更自然、舒服。此次增加选择尺寸的步骤，仍需假借字典，但是细节大有不同：此番需要字典套字典。详言之，标准的证件照尺寸通常同时限定了宽度和高度，需同时调整这两个参数；既然是成对出现，则不应要求使用者重复选择；同时，最好直接让人看到“一寸照”“

---

[前往标准阅读页](https://utgd.net/article/20863?audience=web)
