集成 Zipic 能力
Zipic 提供了 URL Scheme 支持,不管是脚本还是其它 APP 都可以通过 URL Scheme 获得 Zipic 完整的图片压缩能力。
URL Scheme
Zipic 提供的 URL Scheme 为:zipic://compress
。
通过 URL Params 可以指定要压缩对象和压缩选项。
指定压缩对象
zipic://compress? url=/Users/5km/Downloads/demo_jpeg.jpeg& url=/Users/5km/Downloads/demo_png.png& url=/Users/5km/Downloads/demo_folder
可以指定多个压缩对象,压缩对象可以是图像路径也可以是目录路径。
指定压缩选项 Pro 版独享
zipic://compress? url=PATH_TO_IMAGE_OR_FOLDER& level=3.0& format=webp& directory=PATH_TO_SAVE_COMPRESSED_IMAGES& width=0& height=0& location=custom& addSuffix=false& suffix=-compressed& addSubfolder=false& specified=false
压缩等级
等级越高,压缩的空间越大,质量越差。通常情况下,2级或3级可以在质量和大小之间取得平衡,但效果可能因格式而异。
参数: level
,双精度类型
范围: 1~6,步长: 1.0
zipic://compress? url=/Users/5km/Downloads/demo_jpeg.jpeg& level=3.0
文件保存目录
参数: directory
,保存文件的路径,字符串类型
如果希望指定保存文件的目录,必须使用 location
选项并设置为 custom
。
参数: location
,字符串类型,可选如下:
original
custom
zipic://compress? url=/Users/5km/Downloads/demo_jpeg.jpeg& location=custom& directory=/Users/5km/Desktop
要将文件保存到默认目录,还必须启用 specified
选项并设置为 true
。
参数: specified
,布尔类型,默认值为 false
true
false
zipic://compress? url=/Users/5km/Downloads/demo_jpeg.jpeg& location=custom& specified=true
转换格式
参数: format
,字符串类型
所需转换的目标格式。
可选值:
original
jpeg
webp
heic
avif
png
zipic://compress? url=/Users/5km/Downloads/demo_jpeg.jpeg& format=webp
调整尺寸
参数: width
,双精度类型
指定调整后的宽度,默认值为 0
,表示自动调整。
参数: height
,双精度类型
指定调整后的高度,默认值为 0
,表示自动调整。
将图像宽度调整为1920像素,同时保持原始高度比例。
// 将图像宽度调整为1920像素,高度按比例自动调整zipic://compress? url=/Users/5km/Downloads/demo_jpeg.jpeg& width=1920
使用示例
终端中使用
以压缩图片 /Users/5km/Downloads/CleanshotX/demo.png
为例,将其转换为 webp
格式,并保存到用户下载目录。
根据我们的需求,可以构造如下 URL Scheme:
zipic://compress? url=/Users/5km/Downloads/CleanshotX/demo.png& format=webp& directory=/Users/5km/Downloads& location=custom
在终端中可以使用 macOS 的 open
命令来调用 URL Scheme。
open "zipic://compress?url=/Users/5km/Downloads/CleanshotX/demo.png&format=webp&directory=/Users/5km/Downloads&location=custom"
视频中展示了在 iTerm2 中使用 open
命令调用 URL Scheme 的完整过程,压缩图像也顺利以 webp 格式保存到用户下载目录。
快捷指令调用
通过 macOS 下的 快捷指令 和 Zipic 的 URL Scheme 可以实现快速对访达内选中的图像或目录进行压缩。如下图为 Zipic 快捷指令的完整配置:

解释一下整个实现配置:
- 获取访达中选中的文件列表
- 将文件列表解析为文件路径列表保存到
paths
变量中 - 遍历
paths
对每一项编码为url=重复项
的格式,保存到urls
列表 - 用
&
拼接urls
列表每一项保存得到 URL params - 将
zipic://compress?
与 URL params 组合为 URL - 打开最终的 URL 就会触发 Zipic 压缩图像
下载快捷指令后需要导入到 快捷指令,然后勾选访达并设置快捷键,这样我们就能快速压缩 访达 中选中的图像和目录啦。
编程调用
理论上讲可以使用任意编程语言调用 Zipic 的压缩能力,只要这门编程语言支持打开 URL。以 终端中使用 的压缩目标为例,下面是不同编程语言的实现方式,简单列几种:
import AppKit
let urlString = "zipic://compress?url=/Users/5km/Downloads/CleanshotX/demo.png&format=webp&directory=/Users/5km/Downloads&location=custom"
if let url = URL(string: urlString) { if NSWorkspace.shared.open(url) { print("URL successfully opened") } else { print("Failed to open URL") }} else { print("Invalid URL")}
import webbrowser
url = "zipic://compress?url=/Users/5km/Downloads/CleanshotX/demo.png&format=webp&directory=/Users/5km/Downloads&location=custom"webbrowser.open(url)
package main
import ( "os/exec" "log")
func main() { url := "zipic://compress?url=/Users/5km/Downloads/CleanshotX/demo.png&format=webp&directory=/Users/5km/Downloads&location=custom" err := exec.Command("open", url).Start() if err != nil { log.Fatal(err) }}
const url = "zipic://compress?url=/Users/5km/Downloads/CleanshotX/demo.png&format=webp&directory=/Users/5km/Downloads&location=custom";window.location.href = url;
const url = "zipic://compress?url=/Users/5km/Downloads/CleanshotX/demo.png&format=webp&directory=/Users/5km/Downloads&location=custom";window.location.href = url;
目前我们基于 URL Scheme 实现了 Raycast 扩展,方便 Raycast 用户可以快速压缩访达中的图像,阅读《Raycast 扩展》 了解更多。
针对开发者群体,我们下一步计划开发 VScode 扩展实现项目内图像压缩,敬请期待。