在很久之前,我写过一篇文章,简单介绍了 Mac 上最好用的图片压缩工具 Clop,到现在已经用了超过半年时间,它已经完全融入了我日常的写作工作流中。
今天我打算进一步发挥 Clop 的潜力,让它与苹果的快捷指令(Shortcut)进行联动,完成以下需求:
- 自动压缩复制到剪贴板的图片
- 压缩之后,自动调用快捷指令,给图片添加黑色描边
记录一下实现过程。
创建快捷指令
在 Cherry Studio + DeepSeek 的帮助下,我成功创建了一个快捷指令,它可以读取剪贴板里的图片,然后加上 5px 的黑色描边,并将图片保存在「下载」文件夹中。
第一个 Shell 脚本
FILE_PATH="/tmp/input_image.png"
osascript -e 'tell application "System Events" to set the clipboard to (the clipboard as «class PNGf»)'
cat > "$FILE_PATH"
第二个 Shell 脚本
INPUT_FILE="/tmp/input_image.png"
TIMESTAMP=$(date +%s) # 获取当前的 Unix 时间戳
OUTPUT_FILE="/Users/XXXXXX/Downloads/output_image_${TIMESTAMP}.png"
/opt/homebrew/bin/ffmpeg -y -i "$INPUT_FILE" -vf 'pad=iw+10:ih+10:5:5:black' -frames:v 1 -update 1 "$OUTPUT_FILE"
描边效果如下,基本满足需求。
设置 Clop 与快捷指令的联动
在 Clop 的「settings – Automation」 选项中,按照下图方法,将压缩动作与快捷指令进行关联
这样一来,当我用任意截图工具进行截图,首先会触发 Clop 的自动化压缩流程,压缩完毕后,再调用快捷指令对图片添加描边效果。
流程优化
我的需求
我希望能够将添加完描边的图片重新放回剪贴板,以便可以直接粘贴到 Obsidian 中。但是这样一来,因为图片放到了剪贴板,就又会再次触发 Clop 的自动化流程,使得这个流程会无限重复。
本来已经打算放弃了,突然想到,虽然不能将图片重新放回剪贴板,但是如果可以将描边后的图片直接上传到图床,然后返回图床链接 ![]()
,这样一来也可以直接将图床链接粘贴到 Obsidian 中。
说干就干。
PicList
之前我是用 PicGo 这个开源项目来将图片上传到图床,但是这个项目已经停止更新很久了,我也没找到支持命令行上传的方法,一番搜索后找到了 PicList 这个替代工具。
在 PicList 的 说明文档 中可见,它是支持命令行上传的。
所以我让 DeepSeek 将第二个 Shell 脚本进行修改,在使用 ffmpeg 添加完描边效果后,继续将描边后的图片通过 PicList 上传到图床,并将图床链接放在剪贴板中。
INPUT_FILE="/tmp/input_image.png"
TIMESTAMP=$(date +%s) # 获取当前的 Unix 时间戳
OUTPUT_FILE="/Users/XXXXX/Downloads/output_image_${TIMESTAMP}.png"
/opt/homebrew/bin/ffmpeg -y -i "$INPUT_FILE" -vf 'pad=iw+10:ih+10:5:5:black' -frames:v 1 -update 1 "$OUTPUT_FILE" && /Applications/PicList.app/Contents/MacOS/PicList upload "$OUTPUT_FILE"
现在流程终于优化好了,只要截图,就自动实现以下流程:
- 截图后,触发 Clop 对图片进行压缩
- Clop 压缩后,触发快捷指令,对图片添加黑色描边
- 添加完描边后,触发 PicList 的上传命令,自动上传到图床
- PicList 上传完图片后,会自动将
![](url)
图床链接放到剪贴板中 - 将链接粘贴到 Obsidian 中,就可以显示这张图片,如下图所示
关联阅读
本站所有文章,除非特别说明或标注,均为本站原创发布。转载本文需附上本文链接,未经授权,禁止大篇幅复制、盗用、采集或发布本站内容至其他网站、书籍等各类媒体平台。