用途
baoyu-compress-image 是一个图片压缩技能,用于对图片进行压缩优化,默认目标格式为 WebP,也支持 PNG 和 JPEG。当用户提出“压缩图片”“优化图片”“转换为 webp”等需求时可以使用。
主要能力
- 使用当前可用的最佳工具进行压缩,自动选择顺序为:sips → cwebp → ImageMagick → Sharp。
- 默认输出 WebP 格式,也可通过参数指定 png 或 jpeg。
- 支持单文件或目录输入。
- 可设置输出路径、质量(0-100,默认 80)。
- 可选择保留原图(默认不保留)。
- 支持递归处理子目录。
- 支持 JSON 格式输出结果。
- 输出会显示压缩前后大小及压缩比例,例如:image.png → image.webp (245KB → 89KB, 64% reduction)。
使用方式
脚本位于 scripts/ 子目录,将 ${SKILL_DIR} 替换为 SKILL.md 所在目录路径。
运行命令:
npx -y bun ${SKILL_DIR}/scripts/main.ts <input> [options]
参数说明:
<input>:文件或目录,必填。--output/-o:输出路径,默认为同路径、新扩展名。--format/-f:输出格式,可选 webp、png、jpeg,默认 webp。--quality/-q:质量 0-100,默认 80。--keep/-k:保留原图,默认 false。--recursive/-r:处理子目录,默认 false。--json:输出 JSON,默认 false。
示例:
# 单文件转 WebP(替换原图)
npx -y bun ${SKILL_DIR}/scripts/main.ts image.png
# 保留 PNG 格式
npx -y bun ${SKILL_DIR}/scripts/main.ts image.png -f png --keep
# 目录递归处理
npx -y bun ${SKILL_DIR}/scripts/main.ts ./images/ -r -q 75
# JSON 输出
npx -y bun ${SKILL_DIR}/scripts/main.ts image.png --json
偏好设置(EXTEND.md)
可使用 Bash 检查 EXTEND.md 是否存在,优先级顺序如下:
项目级:
test -f .baoyu-skills/baoyu-compress-image/EXTEND.md && echo "project"
用户级(跨平台,$HOME 适用于 macOS/Linux/WSL):
test -f "$HOME/.baoyu-skills/baoyu-compress-image/EXTEND.md" && echo "user"
路径对应位置:
.baoyu-skills/baoyu-compress-image/EXTEND.md:项目目录。$HOME/.baoyu-skills/baoyu-compress-image/EXTEND.md:用户主目录。
处理结果:
- 找到:读取、解析并应用设置。
- 未找到:使用默认值。
EXTEND.md 支持:默认格式、默认质量、保留原图偏好。
适用场景
- 需要将图片批量或单张转换为 WebP 以减少体积。
- 需要优化 PNG 或 JPEG 图片并控制质量。
- 需要在项目中递归处理图片目录。
- 需要以 JSON 形式获取压缩结果以便后续处理。
限制与依赖
- 外部依赖:bun。脚本示例使用 npx -y bun ...,运行前需确认 bun 可用。
- 若运行时依赖缺失,应停止执行并返回确切的安装/设置命令。
- 迁移说明:迁移模式为 OpenClaw native first;保留 scripts 目录;不保留 references 和 prompts 目录;外部依赖 bun;风险等级 low;检测到的环境变量:HOME。
- 配置兼容性:保留原 .baoyu-skills/<skill>/EXTEND.md 行为,并在需要时于运行时包装器中添加 OpenClaw 兼容路径。
暂未提供
- 价格与收费方式暂未提供。
- 具体性能数据、压缩效果承诺暂未提供。