关于 screenshot-compression
用于压缩 PNG 和 JPEG 截图的技能,面向需要缩小图片体积且保留原格式的用户。它调用 pngquant 和 jpegoptim 原位处理图片,并提供递归扫描与质量参数。
主要功能
- 01保留 PNG 或 JPEG 格式
- 02原位压缩图片
- 03支持目录递归处理
- 04可设置 PNG 和 JPEG 质量
- 05汇总单文件及总体压缩结果
适用场景
- 01压缩准备提交到仓库的截图
- 02批量缩小文档或博客图片体积
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ zc277584121/ marketing-skills --skill screenshot-compression安装后在 Claude Code 中输入/screenshot-compression确认已加载。
附带文件scripts/compress_screenshots.py
详细介绍
技能:截图压缩
在保留原始格式的前提下,原地压缩截图(PNG/JPEG)。PNG 使用 pngquant,JPEG 使用 jpegoptim,这两种工具都非常适合压缩截图内容(界面元素、文本、纯色)。
先决条件:系统必须已安装
pngquant和jpegoptim。脚本不会自动安装它们——它会检查这两个工具是否存在,如果缺失则打印安装说明。
适用场景
用户有体积过大的截图文件,希望在不更改格式的情况下减小文件体积。常见场景:
- 为 GitHub README、博客文章或文档准备图片
- 在提交到仓库前减小图片体积
- 批量压缩目录中的截图
为什么保留原始格式(而非 WebP)
WebP 的压缩效果更好,但在某些场景中的兼容性较差:
| 场景 | WebP 支持情况 |
|---|---|
| 浏览器(Chrome/Firefox/Safari/Edge) | 支持 |
| GitHub Issues/PRs | 支持 |
| 微信编辑器 | 不支持 |
| Word / PowerPoint | 不支持 |
| 某些论坛/博客后台 | 不一 |
保留 PNG/JPEG 可确保压缩后的图片在任何地方都能正常使用。
默认工作流
python /path/to/skills/screenshot-compression/scripts/compress_screenshots.py <files-or-directories>
脚本将:
- 检查是否已安装
pngquant和jpegoptim——如果未安装,则打印安装说明并退出 - 根据扩展名自动检测文件格式
- 原地压缩每个文件(覆盖原文件)
- 打印每个文件和整体的压缩摘要
依赖检查
脚本需要两个系统工具。如果其中任意一个缺失,脚本会打印安装说明并退出,而不会继续执行。请勿代替用户安装这些工具——只需转告错误消息,让用户自行安装。
安装命令:
# macOS
brew install pngquant jpegoptim
# Ubuntu / Debian
sudo apt install pngquant jpegoptim
# CentOS / RHEL
sudo yum install pngquant jpegoptim
脚本选项
| 标记 | 默认值 | 描述 |
|---|---|---|
paths(位置参数) | 必需 | 要压缩的图片文件或目录 |
-r、--recursive | 关闭 | 递归处理目录 |
--png-quality | 80-95 | pngquant 质量范围(最小值-最大值,0-100) |
--jpeg-quality | 85 | jpegoptim 最高质量(0-100) |
示例
# Compress a single file
python .../compress_screenshots.py screenshot.png
# Compress all images in a directory
python .../compress_screenshots.py ./images/
# Recursive directory scan
python .../compress_screenshots.py ./docs/ --recursive
# High quality for code screenshots
python .../compress_screenshots.py *.png --png-quality 90-100
# Aggressive compression for thumbnails
python .../compress_screenshots.py *.jpg --jpeg-quality 70
质量调节指南
| 场景 | --png-quality | --jpeg-quality |
|---|---|---|
| 常规截图(文档、网页) | 80-95 | 85 |
| 代码截图(需要清晰的文本) | 90-100 | 90 |
| 缩略图/预览图(优先考虑体积) | 60-80 | 70 |
工作原理
PNG(pngquant)
- 将 24 位真彩色(1,600 万种颜色)量化为 8 位调色板(256 种颜色)
- 使用 Floyd-Steinberg 抖动算法平滑渐变
- 截图是理想的压缩对象——界面颜色通常远少于 256 种
- 典型压缩率:60-80%
JPEG(jpegoptim)
- 按指定的质量等级重新编码
- 通过
--strip-all移除元数据(EXIF、ICC 配置文件、缩略图) - 优化 Huffman 表
- 典型压缩率:20-50%
重要说明
- 文件会被原地压缩——原文件将被覆盖。如有需要,请先备份文件。
- 仅处理
.png、.jpg和.jpeg文件。其他格式将被静默跳过。 - 脚本绝不会安装依赖项。如果缺少工具,它会打印安装说明并退出。
评论
支持 Markdown