baoyu-compress-image 适合给网站和文章处理图片体积。它调用本机可用的压缩工具或 Sharp,不需要图像生成 API;输出能否满足你的需求,要同时看体积、尺寸、文字边缘与透明背景,而不是只看压缩百分比。
安装与调用
在项目目录的终端运行下面的命令,只安装这个 Skill 到 Claude Code:
npx skills add jimliu/baoyu-skills --skill baoyu-compress-image -a claude-code
需要 Node.js 和可用的 npx。若使用 Codex,把 -a claude-code 换成 -a codex;在对话里明确要求使用 baoyu-compress-image 并附上材料,不把终端安装命令当成任务提示。其他客户端应使用自身的技能选择入口。
从一张有代表性的图片开始
选择包含小字、细线或透明边缘的图片,最容易发现压缩损失。安装后让 Agent 定位这个 Skill 的实际目录,脚本是其中的 scripts/main.ts;不要把文档中的 {baseDir} 当成真实路径。运行时优先使用 Bun,没有时工作流可通过 npx -y bun 启动。可以这样输入:
使用 baoyu-compress-image 处理 assets/example.png。
先只处理这一张,输出 WebP,质量 80,明确保留原图。
报告原文件和输出路径、体积及使用的压缩器,不修改文章链接。
完成后让我查看细节,再决定是否处理整个目录。
若 Claude Code 按项目目录安装,下面是可核对的单文件命令;实际位置不同就替换脚本路径:
npx -y bun .claude/skills/baoyu-compress-image/scripts/main.ts assets/example.png --format webp --quality 80 --keep
保留与格式选项要看清
--keep 保留原文件;同格式处理时默认另用带 -compressed 的文件名。没有这个参数时,当前脚本跨格式会把原文件改名为带 _original 的备份,同格式则可能替换原路径,因此不要把默认调用理解成永远保留原名的无副作用操作。可以用 --output 指定目标,但应避免指向唯一原件。
WebP 是默认格式,也支持 PNG 和 JPEG。脚本根据格式与系统选择工具,并非所有机器都使用同一个压缩器。找不到 Bun 时先按官方文档检查版本与 PATH;Sharp 或本机工具报错时,先检查依赖和原始错误,不要继续整目录重试。
打开输出与原图对比,小字、透明背景、边缘和渐变尤其值得看。体积反而变大时不能只因为命令成功就采用结果。确认样本后再用目录输入,需要子目录才加 --recursive;批量报告中分别检查成功与失败文件。转换扩展名不会自动修复网站引用,更新链接是之后单独核对的工作。
网站图片迁移时怎么用
假设产品页有 80 张 PNG,先从文字最多、透明边缘最多和文件最大的图片中各挑一张做样本,不要直接对目录运行默认命令。用 --keep 保留原图,转换后记录原尺寸、文件大小和输出路径;分别在手机与桌面宽度看细节。若 WebP 的体积收益很小、细线却明显模糊,就提高质量或让这类素材保留原格式,不必把所有图片强制统一。
样本通过后再对目录运行批处理,并使用 --json 保存机器可读结果,检查成功数、失败数和输出路径。页面引用原 PNG 时,生成 WebP 不会自动改变 HTML 或 Markdown 路径;替换链接后打开实际页面,核对加载成功与版式。遇到某张图失败,先单独重跑它并看原始工具错误。不要因为其他 79 张成功就把批次判断为完整,也不要在未确认新文件可用之前删除旧图。
把压缩放在发布流程的正确位置
把压缩放在最终图片定稿之后、文章链接和发布稿生成之前。Just Jason 描述的写作流水线也是先生成配图与封面,再压缩全部图片,随后格式化 Markdown 并转成公众号稿。这样压缩对象是最终版本,后续排版引用的是已确认的输出文件。实际执行时别让“压缩所有图片”掩盖失败项:保存每张的原路径、目标路径和大小,逐一确认引用已更新;若生成工具后来重画某张图,要对新文件重新压缩与检查。