Back to Blog
·3 min read·quickpix-image-compressor

macOS sips 命令完全指南(2026)

每一台 Mac 都自带一个又快又安全的图片处理器,叫 sips。可以缩放、转换、压缩、剥离元数据、批量处理——不用装任何东西。这里是它全部能做的事。

你的 Mac 上有一个图片处理器,你大概率没用过。它从 OS X Panther(2003 年)就在了,每一次 macOS 更新都原样附赠,能缩放、转换、压缩、旋转、剥离元数据、批量处理——比大多数 GUI 应用都快。它叫 sips(Scriptable Image Processing System),住在 /usr/bin/sips

这篇是 sips 的完整指南,附上我自己实际在用的工作流。

为什么 sips 存在却几乎没人用

sips 是苹果给系统级图像处理准备的方案——为 shell 脚本、Automator 动作和其他需要图像操作但不想启动 Preview 或 Photos 的 macOS 基建设计。它用的是和 macOS 其他部分一样的 Core Graphics / Core Image 引擎,所以输出质量和 Preview 的导出完全一致。

之所以被遗忘,原因有三: 1. 文档稀缺(Apple 的 man sips 正确但简短到难用) 2. 没有 GUI 推广它 3. 大多数 Mac 图片压缩相关博客默认推荐 ImageOptim 或 TinyPNG

但对于批量操作、自动化、CI 管道,sips 是 macOS 上最实用的工具。

你真正会用的 9 个命令

1. 缩放到最大边长

```bash

缩放到长边 1200px,保持比例

sips -Z 1200 photo.jpg --out photo-small.jpg ```

-Z(大写 Z)保持比例。-z(小写)强制精确尺寸,会变形。

2. 格式转换

```bash

HEIC 转 JPEG

sips -s format jpeg input.heic --out output.jpg

任何格式转 PNG

sips -s format png input.heic --out output.png

转 WebP(macOS Sonoma 起)

sips -s format webp input.jpg --out output.webp ```

支持的格式:jpegpngtiffgifpdfbmppictpsdqtifsgitgawebp(较新 macOS)。

3. 压缩 + 质量控制

```bash

JPEG 质量 80(满分 100)

sips -s formatOptions 80 -s format jpeg input.png --out output.jpg

最大压缩(最小文件)

sips -s formatOptions low input.jpg --out output.jpg

选项:'low'、'normal'、'high'、'best',或 0-100 整数

```

4. 剥离元数据

```bash

移除 JPEG 的 EXIF、GPS、颜色配置

sips -d all input.jpg --out output.jpg

只剥离 ICC 颜色配置

sips -d profile input.jpg --out output.jpg ```

-d 标志删除指定项。-d all 是公开发布前的隐私友好默认。

5. 旋转 / 翻转

```bash

顺时针旋转 90°

sips -r 90 photo.jpg --out rotated.jpg

水平翻转

sips -f horizontal photo.jpg --out flipped.jpg

垂直翻转

sips -f vertical photo.jpg --out flipped.jpg ```

6. 查看图片信息

```bash

查看尺寸、格式、文件大小等

sips -g all photo.jpg

只看尺寸

sips -g pixelWidth -g pixelHeight photo.jpg ```

输出到 stdout,脚本里好解析。

7. 批量处理一个文件夹

```bash

缩放所有 JPEG

for f in ~/Photos/*.jpg; do sips -Z 1200 "$f" --out "${f%.jpg}-small.jpg" done ```

或者输出到子文件夹:

``bash mkdir -p _resized for f in *.jpg; do sips -Z 1200 "$f" --out "_resized/$f" done ``

8. 把整个文件夹的 HEIC 转成 JPEG

``bash mkdir -p _jpeg for f in .heic .HEIC; do [[ -f "$f" ]] || continue sips -s format jpeg "$f" --out "_jpeg/${f%.*}.jpg" done ``

这是我把 iPhone 照片发给非苹果用户时用的脚本。比在 Preview 里逐张打开导出快 50 倍。

9. 裁剪和填充

```bash

居中裁剪到 1080x1080(例如发小红书 / Instagram)

sips -c 1080 1080 photo.jpg --out square.jpg

填充到 1080x1080(白色背景)

sips -p 1080 1080 --padColor FFFFFF photo.jpg --out padded.jpg ```

实战配方

发布前压缩图片到 web 友好质量

```bash #!/usr/bin/env bash

压缩文件夹里所有 JPEG/PNG 到 web 友好的质量 80

输出:./_web/ 子文件夹

set -euo pipefail

INPUT="${1:-.}" mkdir -p "$INPUT/_web"

shopt -s nocasematch for f in "$INPUT"/.{jpg,jpeg,png,heic}; do [[ -f "$f" ]] || continue name="$(basename "$f")" out="${name%.}.jpg" sips -s format jpeg -s formatOptions 80 -d all -Z 2400 "$f" --out "$INPUT/_web/$out" >/dev/null echo " → $out" done ```

存为 ~/bin/compress-for-webchmod +x,然后:

``bash compress-for-web ~/Desktop/product-shots ``

完事。一个压缩好、剥离元数据、最大 2400px 的 JPEG 文件夹,可以直接上传。

把 iPhone Live Photos 转成普通 JPEG

iPhone Live Photos 实际上是 .heic + .mov 配对。只导出静态图:

``bash for f in *.HEIC; do sips -s format jpeg -s formatOptions 90 "$f" --out "${f%.HEIC}.jpg" done ``

给文档截图批量调整尺寸

```bash

把 screenshots 文件夹里的截图调到最大 1200px(适合博客嵌入)

输出到同文件夹加 -1200 后缀

for f in screenshots/*.png; do base="${f%.png}" sips -Z 1200 "$f" --out "${base}-1200.png" done ```

Automator + sips 给文件夹加水印

Automator 的「运行 Shell 脚本」动作可以把图片管道喂给 sips。对于 Finder 的「快速操作」服务特别有用。右键 → 快速操作 → 「调整到 1080」运行一个简短的 sips 脚本。设置一次,用一辈子。

Hazel 规则:自动压缩新下载

如果你用 Hazel,规则类似这样:

`` 如果文件被添加 且 扩展名是 jpg 或 jpeg 或 png 且 大小 > 500 KB 运行 shell 脚本(嵌入): sips -s formatOptions 80 -Z 2400 "$1" --out "$1" ``

对下载文件夹设置这条,永远不会再不小心把 12 MB 的 JPEG 邮件发出去。

sips 不擅长的地方

三种情况下 sips 不是最佳工具:

1. 极限 JPEG 压缩。MozJPEG(ImageOptim 里用的)在同等画质下能比 sips 小 5-15%。如果绝对体积是首要指标,ImageOptim 胜。

2. AVIF / JPEG XL 输出。sips 能读现代格式但写支持滞后。需要输出 AVIF 用 Squoosh 或 QuickPix(封装了 sips + 现代格式导出)。

3. 实时前后对比预览。sips 只是 CLI。需要可视化对比就用带滑块的 GUI 工具。

为什么我们基于 sips 做了 QuickPix

QuickPix 是我做的一款 Mac App。它用 sips 作为引擎,但在上面加了:

  • 拖拽放进去的 UX(不需要 shell)
  • 预制预设(最大压缩 / 推荐 / Web 优化 / 无损)
  • 前后对比滑块(视觉验证质量)
  • 文件夹监听(自动压缩新文件)
  • 现代格式导出(HEIC、WebP、AVIF 读取)
  • 颜色配置保留
  • 批量进度

如果你住在 Terminal 里,sips 就是答案。如果你不住在 Terminal 里,QuickPix 是用同一个引擎的最顺手方式。

QuickPix vs ImageOptim 的诚实对比 →

结语

sips 是 macOS 安静的超能力之一。我认识的大多数开发者都是在需要批量缩放的某一天才学到它,然后又忘了。把这个工具加入工具带,第二次用到就回本。

收藏这篇。或者——如果 shell 不是你的环境——试试 QuickPix,用同样的引擎配上拖拽 UI。免费版处理大多数场景。

常见问题

sips 是 macOS 默认安装的吗?

是。sips 自 OS X Panther(2003)起就在 /usr/bin/sips。不需要安装任何东西,打开 Terminal 输入 sips 看帮助即可。它是系统的一部分,不是第三方工具。

sips 能压缩 HEIC 文件吗?

可以。macOS sips 自 macOS High Sierra 起原生支持 HEIC 编解码。sips -s format heic input.jpg --out output.heic(转 HEIC)和 sips -s formatOptions 80 input.heic --out smaller.heic(原地压缩 HEIC)都能工作。

sips 支持 AVIF 或 JPEG XL 吗?

sips 能读取现代格式(包括 AVIF,macOS Ventura+)但支持有限。输出 AVIF 或 JPEG XL 请用 Squoosh、ImageMagick,或 QuickPix 这类 GUI。日常 HEIC、WebP、PNG、JPEG——sips 全都搞定。

怎么用 sips 批量缩放一个文件夹?

一个简单 shell 循环:for f in *.jpg; do sips -Z 1200 "$f" --out "_resized/$f"; done。先用 mkdir -p _resized 建好输出目录。这条命令把每张 JPEG 缩放到最大边 1200px,保持比例。加 -s formatOptions 80 同时压缩到质量 80。

sips 比 ImageOptim 或 TinyPNG 快吗?

批量场景下,sips 是最快的,因为它是 CLI 工具没有 UI 开销——100 张图 5-10 秒处理完。ImageOptim 单张速度差不多但 UI 有开销。TinyPNG 是服务端处理,总时间取决于上传/下载带宽(大批量经常比 sips 慢)。

#macos#sips#command-line#image-processing#mac#terminal#中文

Written by

Peter Zhang

Building local-first Mac & iOS productivity apps at Obelisk Club.