其他
需要压缩 PNG/JPEG 截图并保持原格式时:用…
当截图文件过大,且需要在文档、仓库、博客等场景中保持 PNG/JPEG 兼容性时,用 pngquant 压缩 PNG、用 jpegoptim 压缩 JPEG。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 35/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 40/100 ×0.15
适用场景
需要压缩 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 质量范围,格式为 min-max,取值 0-100。
- 使用 `--jpeg-quality`(默认 `85`)设置 jpegoptim 最大质量,取值 0-100。
- 单文件示例:`python .../compress_screenshots.py screenshot.png`。
- 目录示例:`python .../compress_screenshots.py ./images/`。
- 递归目录示例:`python .../compress_screenshots.py ./docs/ --recursive`。
- 代码截图高质量示例:`python .../compress_screenshots.py *.png --png-quality 90-100`。
- 缩略图激进压缩示例:`python .../compress_screenshots.py *.jpg --jpeg-quality 70`。
- 通用截图(文档、网页)建议:`--png-quality 80-95`,`--jpeg-quality 85`。
- 代码截图(文字需清晰)建议:`--png-quality 90-100`,`--jpeg-quality 90`。
- 缩略图/预览(优先体积)建议:`--png-quality 60-80`,`--jpeg-quality 70`。
- PNG 处理方式:pngquant 将 24 位真彩色量化为 8 位调色板(256 色)。
- PNG 处理方式:使用 Floyd-Steinberg 抖动使渐变更平滑。
- PNG 处理方式:截图是理想候选,UI 颜色通常远少于 256 个唯一值。
- PNG 典型压缩率:60-80%。
- JPEG 处理方式:jpegoptim 按指定质量重新编码。
- JPEG 处理方式:通过 `--strip-all` 移除元数据(EXIF、ICC profiles、缩略图)。
- JPEG 处理方式:优化 Huffman 表。
- JPEG 典型压缩率:20-50%。
- 文件会被就地压缩并覆盖原文件;如需要先备份。
- 仅处理 `.png`、`.jpg`、`.jpeg`;其他格式会被静默跳过。
- 脚本从不自动安装依赖;缺失时打印安装说明并退出。
适用边界 · 注意事项
- 需要 WebP/AVIF 等更高压缩率且目标平台支持时,不必用此技能;它保留 PNG/JPEG 以保证兼容性。
- 必须保留 JPEG 元数据(EXIF、ICC profiles、缩略图)时不要用 jpegoptim 路径,因为它会 `--strip-all`。
- 系统没有 `pngquant`/`jpegoptim` 且无法安装时不要用;脚本不会自动安装依赖。