快捷指令与 AppleScript

JPGBoost 可与 macOS 原生的自动化工具协同工作。快捷指令与 Spotlight 中提供了原生操作,而 AppleScript 与 Automator 中则提供了 compress 命令。

Free 版已包含

此功能在 JPGBoost Free 和 Pro 中均可使用。在 Free 中,每张处理的图片都会计入每日上限:每天 50 张、每个文件 5 MB。JPGBoost Pro 取消这两项限制。

两种自动化方式

JPGBoost 提供两种 macOS 原生自动化接口。两者都以独立处理的方式运行:以文件与设置作为输入,以压缩后的文件作为输出,且与应用窗口中当前打开的列表无关。

  • 用于快捷指令应用与 Spotlight 的 App Intents
  • 用于 osascript、脚本编辑器与 Automator 的 AppleScript

应用无需保持打开状态

这是与本地 API监控文件夹之间的主要区别,后两者都要求应用程序必须处于运行状态。

无论是通过快捷指令操作,还是通过 AppleScript 的 compress 命令,一旦收到请求,macOS 都会像对待任何其他支持脚本的应用程序一样,自动重新打开 JPGBoost。即使您之前已明确关闭了该应用,也无需进行任何操作。

预期的效果

唯一可见的影响是应用尚未打开时启动所需的短暂延迟。处理完成后,应用会保持打开状态,macOS 不会自动将其关闭。

"压缩图片"操作

只要应用程序曾经打开过一次,该操作就会自动出现在快捷指令应用的 JPGBoost 分类中,无需进行任何配置。

  1. 打开快捷指令应用,创建一个快捷指令。
  2. 添加一个能提供文件的操作,例如选取文件获取文件夹内容
  3. 添加 JPGBoost 的压缩图片操作。
  4. 填写您需要的参数。留空的参数可以通过导出配置文件来补全。
  5. 如有需要,可在之后串联另一个操作:该操作会返回压缩后的文件。
参数功能是否必填
Input Files需要压缩的图片
Output Format期望的输出格式
Quality1 到 100 之间的画质
Export Profile某个现有导出配置文件的名称
Destination Folder输出文件夹(请参阅下方注意事项)

"Destination Folder"字段

快捷指令应用的已知限制

这是最容易引起混淆的部分。Destination Folder 字段很难通过快捷指令编辑器正确填写。可靠的解决方案是使用导出配置文件。

该字段所需要的是 URL 格式的真实文件夹引用,也就是以 file:// 开头的路径(例如 file:///Users/me/Downloads/),而非普通文本。以下方式都会因 Invalid URL 错误而失败

  • 手动输入路径,例如 /Users/me/Downloads
  • 从访达(Finder)中将文件夹拖入该字段——这只会写入普通文本。

macOS 的快捷指令编辑器也没有提供类似"选择文件夹"这样的原生操作,可以用其他方式构建此字段。

情况一:无需构建快捷指令

JPGBoost 只要曾经启动过一次,它自行声明的通用语句("用 JPGBoost 压缩图片""用 JPGBoost 压缩")便会被 Spotlight 直接识别,无需打开快捷指令应用。

这种未经处理的调用只会传递所选的文件,不提供任何其他参数,因此在完成以下设置之前,会因"缺少目标文件夹"而失败。

要让此次调用生效:

  1. 在 JPGBoost 中,打开设置 → 配置文件,将某个已配置目标文件夹的配置文件设置为默认配置文件
  2. 在访达中选择需要压缩的图片。
  3. 按下 ⌘Space,然后输入"压缩图片"

此时,JPGBoost 会根据默认配置文件自动补全缺失的参数,包括目标文件夹、格式与画质

无需在快捷指令应用中构建任何快捷指令。

情况二:构建了快捷指令

当需要用不同名称提供多种行为时,这种方式很有用。例如,"压缩到桌面"可以使用一个配置文件,而"压缩到存档"使用另一个。情况一中的默认配置文件一次只能处理一种行为。

  1. 在 JPGBoost 中,打开设置 → 配置文件,创建一个带有目标文件夹的配置文件,该文件夹通过应用的原生选择器进行选择。
  2. 在快捷指令应用中,创建一个新的快捷指令,并为它取一个清晰的名称,例如"压缩到桌面"。
  3. 在快捷指令的 JPGBoost 操作中,只需填写Export Profile为要使用的配置文件名称。将Destination Folder留空:配置文件中设置的文件夹会自动使用。
  4. 此时,该快捷指令会以您所指定的名称直接出现在 Spotlight 中,而不是 JPGBoost 声明的通用语句。

Spotlight

该操作同样可以通过 Spotlight 访问。诸如"用 JPGBoost 压缩图片"这样的唤醒语句,已被翻译为所有支持的 15 种语言。

显示语言

该操作的标题、说明、参数与错误信息,均取决于展示它们的工具(快捷指令或 Spotlight)所使用的语言,而与 JPGBoost 窗口本身所选的语言无关。

AppleScript

compress 命令的使用方式与其他任何支持脚本的应用程序相同。

tell application "JPGBoost"
    compress {"/path/to/image1.png", "/path/to/image2.jpg"} ¬
        to "/path/to/output" format "webp" quality 80
end tell

toformatquality 参数均为可选。profile 参数可以替代它们,或补全它们未涵盖的部分,其作用方式与命令行中的 --profile 完全相同。

tell application "JPGBoost"
    compress {"/path/to/image.png"} profile "Web JPEG"
end tell

该命令会返回一个 JSON 字符串:每个文件对应一个对象,包含 pathoriginalSizeBytescompressedSizeBytesratiodestinationerror 等字段。其结构与 CLI 的 --json 输出以及本地 API 的响应完全一致。

从终端执行

osascript -e 'tell application "JPGBoost" to compress {"/path/image.png"} profile "Web JPEG"'

从 Automator 中使用

使用运行 AppleScript操作,将相同的 tell 代码块粘贴其中。这样即可创建一个可从访达右键菜单访问的服务。

"自动化"权限

仅需授予一次权限

第一次执行时,macOS 会显示常见的"自动化"权限提示:发送命令的应用程序(脚本编辑器、Automator 或快捷指令)希望控制 JPGBoost。请点击允许。此权限仅会请求一次。

故障排查

症状原因解决方法
目标文件夹处出现 Invalid URL该字段收到的是文本,而非文件夹引用使用带有目标文件夹的导出配置文件,并将该字段留空
该操作未出现在快捷指令应用中应用程序从未被打开过先打开一次 JPGBoost,然后重新打开快捷指令
操作因配额提示而失败已达到 JPGBoost Free 的每日上限(50 张),或某个文件超过 5 MB等待午夜重置,或升级到 JPGBoost Pro 以取消这两项限制
AppleScript 命令返回错误自动化权限被拒绝请检查"系统设置 → 隐私与安全性 → 自动化"。而 Free 配额导致的拒绝不会中断整批处理:它会在返回的 JSON 中逐个文件标注