编注:本文为少数派 Prime 会员的试读文章,少数派会员第一季的内容更新已于 5 月底顺利结束。目前,第二季会员 即将正式上线,你可以随时前往少数派首页购买。
作为公众号运营,从我派首页往公众号后台搬运文章的时候总会遇到一个问题:公众号后台不兼容首页编辑器制作的拼图。我过往的解决方案是将需要拼接的图片拖拽进 Yoink,再一次性拖入 Tunacan 拼图保存。
用 Tunacan 拼接图像
虽然听起来挺方便的,但这个方案还是有一些不足之处:
一次性拖入时,拼图顺序与 Yoink 排列顺序相反;
切换拼图方向、保存拼图都需要手动操作;
会在本地生成一张图片,需要手动删除。
于是,在某个早晨手动拼了半小时图片后,我决定试试快捷指令能否解决这一问题。经过十分钟的折腾之后,我不但解决了上面所有问题,甚至还加入了自动识别拼图方向、自动清除图片的功能。
用快捷指令拼接图像
注:本文的方法用到了 Yoink,如果你没有购买 Yoink,也可以在程序坞新建一个文件夹作为临时存储所用,并在快捷指令用相关动作来替换。
▍快捷指令逻辑
这个快捷指令的逻辑非常简单,只是简单的 获取要拼接的图像 > 拼接图像 而已。得益于 Yoink 对快捷指令的支持,我可以直接在快捷指令中调用 Yoink 所存储的项目,利用自带的「拼接图像」功能完成拼接后,再存储至 Yoink 即可。
核心动作只有 4 个
在日常拼图的时候,图片的尺寸未必完全相同。因此,我还加上了对图片尺寸的调整功能。我的做法是获取首张图片的长 / 宽,并将所有的图片对应调整。也就是说,如果是竖排拼接的话,它就会自动调整图片宽度至首张图片的宽度;水平拼接则会调整高度。
听起来有点绕,但整体的逻辑是以首张图片的尺寸为标准,调整所有图片。如果不这么做的话,在拼接不同尺寸图片时,边缘就无法对齐,从而产生丑陋的白边。
如果不调整图片大小,就会有丑陋的白边
在使用时,我只要按照拼接顺序将图片拖拽进 Yoink,随后按下快捷键,再在弹出窗口中全选图片,即可完成拼图。快捷指令会自动清空 Yoink 内容并将拼接好的图片加入进去。
如此一来,我们就已经解决了「需要手动拼接」的问题。受限于快捷指令与 Yoink 的协作机制,暂时无法做到「自动获取图片」和「只清除已拼接的图片」的效果,但相比于手动拼接来说,它的效果还是非常不错的。
照片选择步骤暂时无法跳过
01 自动判断拼接方向
在实际的拼图过程中,我们可能会遇到一些比较复杂的问题。比如两张电脑桌面的截图,如果横向拼接的话,就会导致图片小得几乎看不清。因此,我们还应该考虑快捷指令能否「判断方向」的问题。
虽然利用「如果」· 动作可以非常轻松地实现条件判断,但我们仍需要考虑什么情况下需要切换拼图方向。
我首先想到的是获取照片的「方向」进行判断:横向照片竖排拼接,纵向照片水平拼接。这样会导致 4:3、3:2 这样常见的照片比例会被竖排拼接,而我希望将这些照片以横向拼接的形式呈现。
因此,我最后选择的方案是计算首张照片的长宽,并将短边相拼。做法则是将宽度乘以 0.5,并与高度进行对比。这里之所以用乘 0.5 而不是除以 2,是因为方便进行灵活修改,如果在使用过程中,发现某些情况下没有正确拼接,只需要调整为 0.45、0.57 这样的数字即可,不需要重新计算除数。
用计算来判断图片拼接方向
02 让快捷指令「一鱼多吃」
相信熟悉少数派的朋友都知道,我们向来鼓励作者通过飞书文档向我们提交稿件。然而,飞书文档的图片是无法直接拖拽到 Yoink 的。我平时的做法是「右键 > 在新标签页中打开图像」。但在 Safari 中,这样的做法会出现两种结果:
图片被自动下载到「下载」文件夹中;
图片在新标签页中打开。
飞书云文档不支持拖拽图片至 Yoink
这两种情况出现的概率比较随机,即使我有了这个快捷指令,想要给飞书文档中的图片做拼图还是很麻烦。于是,我对这个快捷指令进行了简单的改造,让它可以实现「一鱼多吃」的效果。
首先,我在快捷指令的设置中为它勾选了「作为快速操作使用」中的「访达」。如此一来,当我选中多张本地图片后,前往「右键菜单 > 快速操作」即可看到这个快捷指令。
开启此功能后,快捷指令的编写界面就会出现「从快速操作接收任何输入」的提示,将「任何」改为只勾选图像,新增一个「如果」判断。如果有输入的内容,就执行一遍拼接操作,并用「停止并输出」功能来中断快捷指令,不运行后续 Yoink 相关的操作。
如果选择了文件,就直接拼合
如果没有输入的内容,则会跳过这个判断,直接运行下方 Yoink 动作。
如果没选择文件,就从 Yoink 拼合
简单改造过后,飞书文档里的图片只需要通通选择下载,再到「下载」文件夹里选中需要拼接的图片,随后在「右键菜单 > 快速操作」运行该指令即可。这样一来,除了可以拼合 Yoink 中的图片,甚至还可以对本地图片进行加工,非常方便。
一 鱼 两 吃
▍扩展用法
这个快捷指令已经可以满足我对于拼图的需求,并且理论上支持无限张图片拼接。配合上 Keyboard Maestro 先前更新的快捷指令功能,甚至还可以增加更多的玩法。
比如,你可以在快捷指令中将最后一步修改为「拷贝至剪贴板」,随后在 Keyboard Maestro 中执行一次「 Command - V」。如此一来,就能一键将需要的图片拼接并粘贴。如果你平时喜欢在各种论坛发帖,你甚至可以在拼接完成后,让快捷指令「获取 URL 内容」里的 POST 功能帮你上传至图床,并自动将图床链接拷贝至你的剪贴板。
总而言之,这个快捷指令更像是满足「拼图」需求的一块砖,你完全可以根据自己的需求对其进行优化扩展,实现更加高效的动作。
原文地址:http://www.myzaker.com/article/62df73cfb15ec01c2566173e