用途
canghe-compress-image 是一个图像压缩技能,用于将图片压缩为 WebP(默认)或 PNG 等格式。当用户提出“压缩图片”“优化图片”“转换为 webp”等需求时可以使用。
主要能力
- 使用当前可用的最佳工具进行压缩,工具选择顺序为:sips → cwebp → ImageMagick → Sharp。
- 默认输出格式为 WebP,也支持 png、jpeg。
- 支持单文件或目录输入。
- 支持递归处理子目录。
- 支持质量参数(0-100,默认 80)。
- 支持保留原图(--keep)。
- 支持 JSON 输出(--json)。
- 可通过 EXTEND.md 自定义偏好,支持项包括:默认格式、默认质量、是否保留原图。
使用方式
脚本位于 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
输出示例:
image.png → image.webp (245KB → 89KB, 64% reduction)
偏好配置(EXTEND.md)
使用 Bash 检查 EXTEND.md 是否存在,优先级顺序为:先检查项目级,再检查用户级。
项目级路径:.canghe-skills/canghe-compress-image/EXTEND.md
用户级路径:$HOME/.canghe-skills/canghe-compress-image/EXTEND.md(跨平台:$HOME 适用于 macOS/Linux/WSL)
检查命令:
# 先检查项目级
test -f .canghe-skills/canghe-compress-image/EXTEND.md && echo "project"
# 再检查用户级
test -f "$HOME/.canghe-skills/canghe-compress-image/EXTEND.md" && echo "user"
结果处理:找到则读取、解析并应用设置;未找到则使用默认值。
EXTEND.md 支持:默认格式、默认质量、保留原图偏好。
适用场景
- 需要将图片批量或单个压缩为 WebP 以减小体积。
- 需要优化图片但保留 PNG 等原格式。
- 需要递归处理目录中的图片。
- 需要以 JSON 形式获取压缩结果。
限制
- 依赖可用工具链(sips、cwebp、ImageMagick、Sharp),实际使用哪个工具取决于环境。
- 具体安装方式、收费、价格、平台支持范围等资料暂未提供。