跳至内容

集成 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
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 快捷指令的完整配置:

解释一下整个实现配置:

  1. 获取访达中选中的文件列表
  2. 将文件列表解析为文件路径列表保存到 paths 变量中
  3. 遍历 paths 对每一项编码为 url=重复项 的格式,保存到 urls 列表
  4. & 拼接 urls 列表每一项保存得到 URL params
  5. zipic://compress? 与 URL params 组合为 URL
  6. 打开最终的 URL 就会触发 Zipic 压缩图像
下载此快捷指令 Zipic.shortcut

下载快捷指令后需要导入到 快捷指令,然后勾选访达并设置快捷键,这样我们就能快速压缩 访达 中选中的图像和目录啦。

编程调用

理论上讲可以使用任意编程语言调用 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")
}

目前我们基于 URL Scheme 实现了 Raycast 扩展,方便 Raycast 用户可以快速压缩访达中的图像,阅读《Raycast 扩展》 了解更多。

针对开发者群体,我们下一步计划开发 VScode 扩展实现项目内图像压缩,敬请期待。