5

用快捷指令实现一键拼图 | 少数派会员 π+Prime

 2 years ago
source link: https://sspai.com/prime/story/shortcut-collage-howto
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

用快捷指令实现一键拼图 | 少数派会员 π+Prime

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


按:少数派会员第一季的内容更新已于 5 月底顺利结束。目前,第二季会员仍在预售中。

从今天(7 月 18 日)开始,我们将进入为期一周的试更新阶段,按照会员正式上线后的时间表和栏目安排更新内容,每天或隔天更新一篇。在此期间更新的文章,仍将作为限时免费试读。

我们计划于本周五(7 月 22 日)下午 6:00 结束第二季会员预售,预计下周正式上线第二季会员的功能和内容。届时,预购期间更新的文章将收录入第二季会员内容目录,作为会员专享内容。因此,我们鼓励读者利用本周时间浏览已发布的会员试读文章,并积极参与预购,以免错过仅在本阶段提供的最低折扣。

敬请知悉,由于我们仍在对会员功能模块和内容编排做最后的完善,正式版本的页面样式将会重新设计(老麦已经提前透露了一些预览效果),栏目名称和类型也可能发生微调。我们也欢迎会员积极提出反馈意见。

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


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

d88da1da681030522f5bd2adde8695f3.gif
用 Tunacan 拼接图像

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

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

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

点此下载快捷指令 >

abd7cb014593acdc1cbebe87de9f2088.gif
用快捷指令拼接图像

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

快捷指令逻辑

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

1
核心动作只有 4 个

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

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

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

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

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

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

自动判断拼接方向

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

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

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

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

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

让快捷指令「一鱼多吃」

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

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

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

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

1

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

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

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

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

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

efbc2cb0643d75a0d12ef6fd5bcd696f.gif
一 鱼 两 吃

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

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

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

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



About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK