macOS 深处藏着 sips——全称 Scriptable Image Processing System——一个已经是操作系统一部分多年的命令行工具,而大多数 Mac 用户从未听说过它,更别提用过了。它可以完全在终端中调整图片大小、旋转和转换格式,无需安装任何第三方软件。对于脚本编写场景,它确实是个实用的工具。但对于日常的批量工作,它存在不小的摩擦。
sips 擅长什么
一条像 sips -s format jpeg input.png --out output.jpg 这样的命令就能转换一个文件,而无需安装任何东西——它已经在每台 Mac 上了。包裹在一个 shell 循环中,它可以处理整个文件夹:for f in *.png; do sips -s format jpeg "$f" --out "${f%.png}.jpg"; done。如果你熟悉终端操作,只需要一个快速的一次性脚本,sips 能以零安装成本完成任务。
它在哪些地方让人不太舒服
它的语法不太直观,也很容易出错——像 -Z 这种用于保持宽高比调整大小的参数,和用于精确尺寸的 --resampleWidth,并不是大多数人在多次使用之间还能记住的东西。没有可视化队列,除了终端输出之外没有进度提示,也没办法在不写更复杂脚本的情况下把调整大小、裁剪和水印串联起来。而且如果你不熟悉 shell 循环,转换一个文件夹而不是单个文件,本身就是一个小小的研究课题。
什么时候图形界面工具更胜一筹
如果批量转换是你工作流中经常性的一部分,而不是偶尔才有的脚本任务,像 Mediasmith 这样的图形界面工具能完全省去语法这一环。把文件拖到队列上,通过可视化选项设置格式、调整大小、裁剪和水印,然后转换。
诚实的对比
sips 免费、预装好,如果你本来就在因为其他原因写 shell 脚本,把它整合进更大的自动化工作流中会非常合适。图形界面转换工具在处理日常的一次性和批量任务时更快,尤其是涉及调整大小、裁剪或水印链的任务,而且不需要在几个月的间隔之后还要记得命令语法。
两者没有绝对的优劣——这取决于你是在搭建一条自动化流水线,还是今天只是需要转换几个文件。