Pi Store
更多

用快捷指令实现一键拼图

2022 年 07 月 18 日

作为公众号运营,从我派首页往公众号后台搬运文章的时候总会遇到一个问题:公众号后台不兼容首页编辑器制作的拼图。经过十分钟的折腾之后,我不但用快捷指令解决了问题,还加入了自动识别拼图方向、自动清除图片的功能。


按:今天更新的内容延续自第一季的「曲径通幽」栏目,主要介绍自动化相关技巧。但在第二季中,我们不再将目光限于快捷指令这一个自动化工具,而会在本栏目中收录各个平台的自动化技巧,以满足不同读者、不同场景的自动化需求。


作为公众号运营,从我派首页往公众号后台搬运文章的时候总会遇到一个问题:公众号后台不兼容首页编辑器制作的拼图。我过往的解决方案是将需要拼接的图片拖拽进 Yoink,再一次性拖入 Tunacan 拼图保存。

用 Tunacan 拼接图像

虽然听起来挺方便的,但这个方案还是有一些不足之处:

  • 一次性拖入时,拼图顺序与 Yoink 排列顺序相反
  • 切换拼图方向、保存拼图都需要手动操作
  • 会在本地生成一张图片,需要手动删除

于是,在某个早晨手动拼了半小时图片后,我决定试试快捷指令能否解决这一问题。经过十分钟的折腾之后,我不但解决了上面所有问题,甚至还加入了自动识别拼图方向、自动清除图片的功能。

点此下载快捷指令 >

用快捷指令拼接图像

注:本文的方法用到了 Yoink,如果你没有购买 Yoink,也可以在程序坞新建一个文件夹作为临时存储所用,并在快捷指令用相关动作来替换。

快捷指令逻辑

这个快捷指令的逻辑非常简单,只是简单的 获取要拼接的图像 > 拼接图像 而已。得益于 Yoink 对快捷指令的支持,我可以直接在快捷指令中调用 Yoink 所存储的项目,利用自带的「拼接图像」功能完成拼接后,再存储至 Yoink 即可。

核心动作只有 4 个

在日常拼图的时候,图片的尺寸未必完全相同。因此,我还加上了对图片尺寸的调整功能。我的做法是获取首张图片的长 / 宽,并将所有的图片对应调整。也就是说,如果是竖排拼接的话,它就会自动调整图片宽度至首张图片的宽度;水平拼接则会调整高度。

听起来有点绕,但整体的逻辑是以首张图片的尺寸为标准,调整所有图片。如果不这么做的话,在拼接不同尺寸图片时,边缘就无法对齐,从而产生丑陋的白边。

如果不调整图片大小,就会有丑陋的白边

在使用时,我只要按照拼接顺序将图片拖拽进 Yoink,随后按下快捷键,再在弹出窗口中全选图片,即可完成拼图。快捷指令会自动清空 Yoink 内容并将拼接好的图片加入进去。

如此一来,我们就已经解决了「需要手动拼接」的问题。受限于快捷指令与 Yoink 的协作机制,暂时无法做到「自动获取图片」和「只清除已拼接的图片」的效果,但相比于手动拼接来说,它的效果还是非常不错的。

照片选择步骤暂时无法跳过

自动判断拼接方向

在实际的拼图过程中,我们可能会遇到一些比较复杂的问题。比如两张电脑桌面的截图,如果横向拼接的话,就会导致图片小得几乎看不清。因此,我们还应该考虑快捷指令能否「判断方向」的问题。

虽然利用 如果 动作可以非常轻松地实现条件判断,但我们仍需要考虑什么情况下需要切换拼图方向

我首先想到的是获取照片的「方向」进行判断:横向照片竖排拼接,纵向照片水平拼接。这样会导致 4:3、3:2 这样常见的照片比例会被竖排拼接,而我希望将这些照片以横向拼接的形式呈现。

因此,我最后选择的方案是计算首张照片的长宽,并将短边相拼。做法则是将宽度乘以 0.5,并与高度进行对比。这里之所以用乘 0.5 而不是除以 2,是因为方便进行灵活修改,如果在使用过程中,发现某些情况下没有正确拼接,只需要调整为 0.45、0.57 这样的数字即可,不需要重新计算除数。

用计算来判断图片拼接方向

让快捷指令「一鱼多吃」

相信熟悉少数派的朋友都知道,我们向来鼓励作者通过飞书文档向我们提交稿件。然而,飞书文档的图片是无法直接拖拽到 Yoink 的。我平时的做法是右键 > 在新标签页中打开图像。但在 Safari 中,这样的做法会出现两种结果:

  1. 图片被自动下载到「下载」文件夹中;
  2. 图片在新标签页中打开。
飞书云文档不支持拖拽图片至 Yoink

这两种情况出现的概率比较随机,即使我有了这个快捷指令,想要给飞书文档中的图片做拼图还是很麻烦。于是,我对这个快捷指令进行了简单的改造,让它可以实现「一鱼多吃」的效果。

首先,我在快捷指令的设置中为它勾选了「作为快速操作使用」中的「访达」。如此一来,当我选中多张本地图片后,前往 右键菜单 > 快速操作 即可看到这个快捷指令。

开启此功能后,快捷指令的编写界面就会出现「从快速操作接收任何输入」的提示,将「任何」改为只勾选图像,新增一个 如果 判断。如果有输入的内容,就执行一遍拼接操作,并用「停止并输出」功能来中断快捷指令,不运行后续 Yoink 相关的操作。

如果选择了文件,就直接拼合

如果没有输入的内容,则会跳过这个判断,直接运行下方 Yoink 动作。

如果没选择文件,就从 Yoink 拼合

简单改造过后,飞书文档里的图片只需要通通选择下载,再到「下载」文件夹里选中需要拼接的图片,随后在 右键菜单 > 快速操作 运行该指令即可。这样一来,除了可以拼合 Yoink 中的图片,甚至还可以对本地图片进行加工,非常方便。

一 鱼 两 吃

扩展用法

这个快捷指令已经可以满足我对于拼图的需求,并且理论上支持无限张图片拼接。配合上 Keyboard Maestro 先前更新的快捷指令功能,甚至还可以增加更多的玩法。

比如,你可以在快捷指令中将最后一步修改为「拷贝至剪贴板」,随后在 Keyboard Maestro 中执行一次 ⌘Command - V。如此一来,就能一键将需要的图片拼接并粘贴。如果你平时喜欢在各种论坛发帖,你甚至可以在拼接完成后,让快捷指令「获取 URL 内容」里的 POST 功能帮你上传至图床,并自动将图床链接拷贝至你的剪贴板。

总而言之,这个快捷指令更像是满足「拼图」需求的一块砖,你完全可以根据自己的需求对其进行优化扩展,实现更加高效的动作。

© 本文内容为少数派独家版权,仅限少数派会员在本平台阅读体验,不得转载或复制,否则即为侵权。


评论区
精彩评论0
成为少数派会员方可评论,立即加入 。若已是少数派会员,点击登录
还没有评论,来发表第一个评论吧
精彩评论
还没有评论,来发表第一个评论吧
成为少数派会员方可评论,立即加入 。若已是少数派会员,点击登录
会员新功能
内容侧边栏
点击这里拉开侧边栏,即可查看会员内容列表,快速切换内容。