← 返回
未分类

智能图片压缩

图片压缩技能。使用 Python Pillow 库对 PNG/JPG/WebP 图片进行智能压缩,可在保持清晰度基本不变的前提下将图片体积压缩 70% 左右。自动分析图片特征选择最佳压缩策略(JPEG 质量调优、PNG 调色板优化、WebP 转换、等比例缩放等)。当用户提到"压缩图片"、"图片太大"、"缩小图片"、"优化图片体积"、"图片变小"等关键词时触发。
图片压缩技能。使用 Python Pillow 库对 PNG/JPG/WebP 图片进行智能压缩,可在保持清晰度基本不变的前提下将图片体积压缩 70% 左右。自动分析图片特征选择最佳压缩策略(JPEG 质量调优、PNG 调色板优化、WebP 转换、等比例缩放等)。当用户提到"压缩图片"、"图片太大"、"缩小图片"、"优化图片体积"、"图片变小"等关键词时触发。
SkillForge
未分类 community v1.0.3 4 版本 100000 Key: 无需
★ 0
Stars
📥 95
下载
💾 0
安装
4
版本
#latest

概述

Image Compressor - 智能图片压缩

概述

本 skill 使用 Python Pillow 库对图片进行智能压缩,在不明显损失视觉质量的前提下大幅减小文件体积。

典型效果:

图片类型典型压缩率视觉质量
-----------------------------
照片/JPEG70-85%几乎无感知差异
截图/PNG60-80%几乎无感知差异
WebP65-80%几乎无感知差异
含文字截图50-70%文字清晰可辨

工作流程

第一步:检查依赖

首次使用自动安装 Pillow(如果需要):

pip install Pillow -q

可以先用 python -c "from PIL import Image; print('OK')" 检查是否已安装。

第二步:调用压缩脚本

压缩一张图片:

python scripts/compress_image.py <图片路径> [选项]

基本用法:

# 默认压缩(自动检测格式,目标压缩 70%)
python scripts/compress_image.py photo.jpg

# 指定质量
python scripts/compress_image.py photo.jpg --quality 40

# 指定输出格式为 WebP
python scripts/compress_image.py photo.png --format webp

# 限制最大宽度 1200px 并压缩
python scripts/compress_image.py photo.jpg --max-width 1200

# 指定输出路径
python scripts/compress_image.py photo.jpg --output compressed.jpg

第三步:展示结果

压缩完成后,向用户展示压缩报告:

📊 压缩结果
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📁 原始: 2.3 MB
📁 压缩后: 687.2 KB
📉 压缩率: 70.1%
🖼️  格式: PNG → JPEG
⚙️  质量参数: 45
━━━━━━━━━━━━━━━━━━━━━━━━━━━━

如果用户需要,可以同时展示压缩前后的图片对比(用 Read 工具读取两张图片让用户直观感受差异)。


核心压缩策略

脚本 scripts/compress_image.py 实现了以下策略,按优先级自动选择:

策略 1:JPEG 质量调优(默认用于照片类)

  • 将质量从 75-95(典型原图)降到 30-55
  • 自动二分搜索最佳质量值来精确匹配目标压缩率
  • 剔除 EXIF 元数据(可保留)
  • 可选的等比例缩放

策略 2:PNG 深度优化

  • 对有透明通道的 PNG 保持 PNG 格式,启用 optimize=True
  • 对无透明的 PNG 自动建议转换为 JPEG
  • 对索引色 PNG 优化调色板

策略 3:WebP 转换(最佳压缩比)

  • 用 WebP 格式可以获得 JPEG 同等质量下再小 25-35% 的体积
  • 但注意:WebP 兼容性略差(不支持微信等老平台)

策略 4:等比例缩放

  • 当图片尺寸过大时(如 4000x3000),先缩放到合理尺寸再压缩
  • 默认不缩放,通过 --max-width 参数控制

交互指南

快速模式(用户给出明确路径)

用户:帮我压缩这张图片 D:\photos\IMG_001.jpg
→ 直接执行压缩脚本,展示结果
→ 询问是否满意,需要调整参数再试一次

探索模式(用户没给路径)

用户:图片太大了帮我压缩一下
→ 询问图片位置
→ 确认压缩目标(质量优先还是体积优先)
→ 执行压缩
→ 展示前后对比

批量模式(多个文件)

用户:帮我把这个文件夹里所有图片压缩了
→ 用 Glob 查找文件夹中的所有图片文件 (*.jpg, *.jpeg, *.png, *.webp)
→ 逐个压缩
→ 汇总展示结果

对比展示

压缩完成后,Read 原始图片和压缩后图片让用户直观对比质量差异。


常用参数速查

参数说明默认值推荐值
---------------------------
--qualityJPEG/WebP 质量5030-60
--target-ratio目标压缩后/前的比例0.30.2-0.4
--format输出格式自动选择jpg/png/webp
--max-width最大宽度(px)不限1920/1200
--keep-exif保留 EXIF 信息--

常用组合

# 极致压缩(体积优先)
python scripts/compress_image.py photo.jpg --quality 25 --target-ratio 0.15

# 高质量压缩(画质优先)
python scripts/compress_image.py photo.jpg --quality 70 --target-ratio 0.5

# 网络用图(1920宽 + WebP)
python scripts/compress_image.py photo.jpg --max-width 1920 --format webp --quality 50

# 微信分享(保持 JPG 兼容性)
python scripts/compress_image.py photo.jpg --max-width 1200 --quality 45

重要约束

  1. 不下采样过度 - 质量低于 15 时警告用户画质损失明显
  2. 检查输出 - 压缩完成后必须检查输出文件是否有效
  3. 透明处理 - PNG 透明通道转换为 JPEG 时用白色背景填充,必须告知用户
  4. 不破坏原图 - 默认输出为 原文件名_compressed.扩展名,不覆盖原图
  5. 诚实报告 - 如果原图已经很小(<100KB),如实告知压缩空间有限

版本历史

共 4 个版本

  • v1.0.3 Initial release 当前
    2026-05-24 15:12 安全 安全
  • v1.0.2 Initial release
    2026-05-23 08:26 安全 安全
  • v1.0.1 Initial release
    2026-05-17 16:20 安全 安全
  • v1.0.0 Initial release
    2026-05-17 16:06 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

dev-programming

Github

steipete
使用 `gh` CLI 与 GitHub 交互,通过 `gh issue`、`gh pr`、`gh run` 和 `gh api` 管理议题、PR、CI 运行及高级查询。
★ 679 📥 328,417
dev-programming

Mcporter

steipete
使用 mcporter CLI 直接列出、配置、认证及调用 MCP 服务器/工具(支持 HTTP 或 stdio),涵盖临时服务器、配置编辑及 CLI/类型生成功能。
★ 195 📥 67,800
content-creation

「朋友圈文案生成器」

user_72991e7a
朋友圈文案生成器。根据用户指定的风格、字数、主题、情绪基调等要求,生成适合发微信朋友圈的文案。支持文艺、幽默、励志、日常、美食、情感、职场、旅行等风格,每次提供多条不同切入点的文案供选择。当用户提到"朋友圈文案"、"发朋友圈"、"朋友圈"、
★ 0 📥 123