mcpField
S
screenshot-compression

screenshot-compression

github.com/zc277584121创意与媒体03.8k 次安装9 周前更新
代码仓库

关于 screenshot-compression

用于压缩 PNG 和 JPEG 截图的技能,面向需要缩小图片体积且保留原格式的用户。它调用 pngquant 和 jpegoptim 原位处理图片,并提供递归扫描与质量参数。

主要功能

  1. 01保留 PNG 或 JPEG 格式
  2. 02原位压缩图片
  3. 03支持目录递归处理
  4. 04可设置 PNG 和 JPEG 质量
  5. 05汇总单文件及总体压缩结果

适用场景

  1. 01压缩准备提交到仓库的截图
  2. 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>

脚本将:

  1. 检查是否已安装 pngquant 和 jpegoptim——如果未安装,则打印安装说明并退出
  2. 根据扩展名自动检测文件格式
  3. 原地压缩每个文件(覆盖原文件)
  4. 打印每个文件和整体的压缩摘要

依赖检查

脚本需要两个系统工具。如果其中任意一个缺失,脚本会打印安装说明并退出,而不会继续执行。请勿代替用户安装这些工具——只需转告错误消息,让用户自行安装。

安装命令:

# macOS
brew install pngquant jpegoptim

# Ubuntu / Debian
sudo apt install pngquant jpegoptim

# CentOS / RHEL
sudo yum install pngquant jpegoptim

脚本选项

标记默认值描述
paths(位置参数)必需要压缩的图片文件或目录
-r、--recursive关闭递归处理目录
--png-quality80-95pngquant 质量范围(最小值-最大值,0-100)
--jpeg-quality85jpegoptim 最高质量(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-9585
代码截图(需要清晰的文本)90-10090
缩略图/预览图(优先考虑体积)60-8070

工作原理

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