【骚操作】MacOS上自动压缩截图

本文最后更新于:2023年12月17日 下午

前言

之前写博客一直是用 picgo + github 作为 typora的图床,但是有时候网不太行,图片显示得很慢。所以后来换了 gitee 作为图床,但是发现仍然有时候图片无法显示,但是通过浏览器的URL访问没有问题,这就让我很疑惑,后来查阅资料发现,gitee 居然不支持 1M 以上图片的查看[1],这可太坑了。

惊了

然后我就想着能不能做到自动压缩截图大小,来实现曲线救国,通过查阅网上资料,还真让我找到了方法。

自动压缩截图

实现方法参考这篇文章:在 macOS 中,如何自动压缩截屏图片大小[2],里面写得很详细了,我这里就简单地描述下实现原理,并演示实际效果。

实现原理

我们都知道有一些办法能够调整图片大小,比如利用MacOS上的预览,对图片进行导出,就可以实现压缩图片大小。还可以通过其他软件,或者命令行工具(例如pngquant,ImageMagick)来压缩图片。但是上面如果手动操作就有点繁琐了, 所以关键在于如何实现“自动”的效果。

提到“自动”,那么自然就需要自动的工作流软件了,也就是 Hazel 或者 Automator,利用工作流软件,来自动地对截图进行压缩。完整流程如下:

  1. 将截图保存到一个目录中;
  2. 利用 Hazel 或者 Automator 工作流软件,自动触发脚本;
  3. 在脚本中,使用命令行工具对截图进行压缩并保存;
  4. 将压缩后的图片复制到剪贴板(也是利用脚本完成);
  5. 屏幕通知图片压缩完成;
  6. (可选)将压缩后的图片删除。

实际演示

接下来我将演示如何配置 Hazel ,Automator 可以参考上面博文的内容。

  1. 首先选择一个文件夹,作为存放截图的目录。
    选择截图目录
  2. 然后添加规则
    添加规则
  3. 配置规则,如下图所示

配置规则

  1. 具体脚本内容如下所示:

压缩图片并复制到剪贴板

1
2
pngquant 128 --skip-if-larger --strip --ext=.png --force "$1"
osascript -e "set the clipboard to (read (POSIX file \"$(perl -e "print glob('$1')")\") as {«class PNGf»})"

屏幕提示

1
The compressed image `file` has been copied to the clipboard.

删除截图

最后删除截图是可选的,因为在typora里图片复制后自动上传,所以我就设置了删除截图。


至此就实现了自动压缩截图的效果,只要每次截图的时候保存到设置的目录,就会自动压缩图片,并复制到剪贴板,等屏幕提示“压缩已完成”后,我直接在 typora 里粘贴图片即可,又可以愉快地写博客喽~

备注/参考


【骚操作】MacOS上自动压缩截图
https://2017zhangyuxuan.github.io/2022/02/15/2022-02/2022-02-15 【骚操作】MacOS上自动压缩截图/
作者
Zhang Yuxuan
发布于
2022年2月15日
许可协议