AgentSkillsCN

optimize-image-web

通过可选的尺寸调整,将图像转换为 WebP 格式,从而实现图像的网络优化。当用户需要优化图像、生成 favicon、创建图标集、制作社交媒体卡片(og:image、twitter)或生成缩略图时,可选用此方法。

SKILL.md
--- frontmatter
name: optimize-image-web
description: Optimizes images for web by converting to WebP format with optional resizing. Use when user needs to optimize images, generate favicons, create icon sets, make social media cards (og:image, twitter), or create thumbnails.
allowed-tools: Bash, Read

Optimize Image for Web

Convert images to optimized WebP format with size presets for icons, social cards, and thumbnails.

When to Use

  • User needs to optimize images for web performance
  • User asks for favicon or icon set generation
  • User needs og:image or twitter card images
  • User wants to resize and compress images
  • User mentions WebP conversion
  • User needs thumbnails at specific sizes

Requirements

No API keys required. Uses Pillow for image processing.

Commands

Convert Single Image

bash
./scripts/optimize_image.py convert image.png -w 800 -q 85

Generate Preset Sizes

bash
./scripts/optimize_image.py preset image.png favicon
./scripts/optimize_image.py preset logo.png icon-set
./scripts/optimize_image.py preset hero.jpg og

Show Image Info

bash
./scripts/optimize_image.py info image.png

List Available Presets

bash
./scripts/optimize_image.py presets

Options

convert

OptionDescription
-o, --outputOutput path (default: same name .webp)
-w, --widthTarget width in pixels
-h, --heightTarget height in pixels
-q, --qualityWebP quality 1-100 (default: 85)
-f, --formatOutput: json (default) or files

preset

OptionDescription
-o, --output-dirOutput directory
-p, --prefixFilename prefix
-q, --qualityWebP quality 1-100 (default: 85)
-f, --formatOutput: json (default) or files

Presets

PresetSizesUse Case
favicon16, 32, 48Browser favicons
icon-set16-512Full icon set for PWA/apps
og1200x630Open Graph (Facebook, LinkedIn)
twitter1200x675Twitter cards
socialog + twitterAll social platforms
thumb150x150Small thumbnails
thumb-lg300x300Large thumbnails

Output Format

Default JSON for LLM parsing:

json
{
  "input": "logo.png",
  "preset": "icon-set",
  "original": {"width": 1024, "height": 1024},
  "outputs": [
    {"path": "logo-16x16.webp", "width": 16, "height": 16, "size_kb": 0.5},
    {"path": "logo-32x32.webp", "width": 32, "height": 32, "size_kb": 1.2}
  ],
  "quality": 85
}

Examples

Optimize hero image for web:

bash
./scripts/optimize_image.py convert hero.jpg -w 1920 -q 80

Generate favicons from logo:

bash
./scripts/optimize_image.py preset logo.png favicon -o ./public

Generate social media cards:

bash
./scripts/optimize_image.py preset banner.png social -o ./assets

Generate icon set for PWA:

bash
./scripts/optimize_image.py preset icon.png icon-set -o ./public/icons -p app

Check original image details:

bash
./scripts/optimize_image.py info photo.jpg