快捷指令与 AppleScript
JPGBoost 可与 macOS 原生的自动化工具协同工作。快捷指令与 Spotlight 中提供了原生操作,而 AppleScript 与 Automator 中则提供了 compress 命令。
此功能在 JPGBoost Free 和 Pro 中均可使用。在 Free 中,每张处理的图片都会计入每日上限:每天 50 张、每个文件 5 MB。JPGBoost Pro 取消这两项限制。
两种自动化方式
JPGBoost 提供两种 macOS 原生自动化接口。两者都以独立处理的方式运行:以文件与设置作为输入,以压缩后的文件作为输出,且与应用窗口中当前打开的列表无关。
- 用于快捷指令应用与 Spotlight 的 App Intents。
- 用于
osascript、脚本编辑器与 Automator 的 AppleScript。
应用无需保持打开状态
这是与本地 API和监控文件夹之间的主要区别,后两者都要求应用程序必须处于运行状态。
无论是通过快捷指令操作,还是通过 AppleScript 的 compress 命令,一旦收到请求,macOS 都会像对待任何其他支持脚本的应用程序一样,自动重新打开 JPGBoost。即使您之前已明确关闭了该应用,也无需进行任何操作。
唯一可见的影响是应用尚未打开时启动所需的短暂延迟。处理完成后,应用会保持打开状态,macOS 不会自动将其关闭。
"压缩图片"操作
只要应用程序曾经打开过一次,该操作就会自动出现在快捷指令应用的 JPGBoost 分类中,无需进行任何配置。
- 打开快捷指令应用,创建一个快捷指令。
- 添加一个能提供文件的操作,例如选取文件或获取文件夹内容。
- 添加 JPGBoost 的压缩图片操作。
- 填写您需要的参数。留空的参数可以通过导出配置文件来补全。
- 如有需要,可在之后串联另一个操作:该操作会返回压缩后的文件。
| 参数 | 功能 | 是否必填 |
|---|---|---|
| Input Files | 需要压缩的图片 | 是 |
| Output Format | 期望的输出格式 | 否 |
| Quality | 1 到 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 直接识别,无需打开快捷指令应用。
这种未经处理的调用只会传递所选的文件,不提供任何其他参数,因此在完成以下设置之前,会因"缺少目标文件夹"而失败。
要让此次调用生效:
- 在 JPGBoost 中,打开设置 → 配置文件,将某个已配置目标文件夹的配置文件设置为默认配置文件。
- 在访达中选择需要压缩的图片。
- 按下
⌘Space,然后输入"压缩图片"。
此时,JPGBoost 会根据默认配置文件自动补全缺失的参数,包括目标文件夹、格式与画质。
无需在快捷指令应用中构建任何快捷指令。
情况二:构建了快捷指令
当需要用不同名称提供多种行为时,这种方式很有用。例如,"压缩到桌面"可以使用一个配置文件,而"压缩到存档"使用另一个。情况一中的默认配置文件一次只能处理一种行为。
- 在 JPGBoost 中,打开设置 → 配置文件,创建一个带有目标文件夹的配置文件,该文件夹通过应用的原生选择器进行选择。
- 在快捷指令应用中,创建一个新的快捷指令,并为它取一个清晰的名称,例如"压缩到桌面"。
- 在快捷指令的 JPGBoost 操作中,只需填写Export Profile为要使用的配置文件名称。将Destination Folder留空:配置文件中设置的文件夹会自动使用。
- 此时,该快捷指令会以您所指定的名称直接出现在 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
to、format 与 quality 参数均为可选。profile 参数可以替代它们,或补全它们未涵盖的部分,其作用方式与命令行中的 --profile 完全相同。
tell application "JPGBoost"
compress {"/path/to/image.png"} profile "Web JPEG"
end tell
该命令会返回一个 JSON 字符串:每个文件对应一个对象,包含 path、originalSizeBytes、compressedSizeBytes、ratio、destination 与 error 等字段。其结构与 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 中逐个文件标注 |