AgentSkillsCN

Image Handling

图像处理

SKILL.md
--- frontmatter
applyTo: "**/*.png,**/*.jpg,**/*.webp,**/*image*,**/*convert*"

Image Handling Skill

Right format, right size, right quality.

Format Selection

FormatBest ForSupports
SVGIcons, logos, diagramsInfinite scale, animation
PNGScreenshots, transparencyLossless, alpha channel
JPEGPhotos, gradientsSmall size, no transparency
WebPWeb imagesBest compression, both
ICOFaviconsMulti-resolution

Conversion Commands

powershell
# SVG to PNG using sharp-cli (recommended)
# --density sets DPI for vector rendering (150 = crisp text)
npx sharp-cli -i input.svg -o output-folder/ --density 150 -f png

# Note: output must be a directory, filename preserved from input
npx sharp-cli -i banner.svg -o assets/ --density 150 -f png
# Creates: assets/banner.png

# ImageMagick (if installed)
magick input.svg -resize 512x512 output.png
magick input.png -quality 85 output.jpg

# Multiple sizes
foreach ($size in 16,32,64,128,256,512) {
  magick input.svg -resize ${size}x${size} "icon-$size.png"
}

SVG to PNG Tips

  • Emojis don't convert well - Use text-only or SVG icons
  • Use --density 150+ for crisp text rendering
  • Check file size - README banners should be < 500KB

GitHub README Images

markdown
<!-- Absolute URL (always works) -->
![Banner](https://raw.githubusercontent.com/user/repo/main/assets/banner.svg)

<!-- Relative (works in repo) -->
![Banner](./assets/banner.png)

<!-- With dark/light variants -->
<picture>
  <source media="(prefers-color-scheme: dark)" srcset="banner-dark.svg">
  <img src="banner-light.svg" alt="Banner">
</picture>

Size Guidelines

Use CaseMax SizeRecommended
README banner500KB< 100KB
Documentation200KB< 50KB
Icons50KB< 10KB
Favicon10KB< 5KB

Optimization

powershell
# PNG optimization
pngquant --quality=65-80 input.png -o output.png

# JPEG optimization
jpegoptim --max=85 input.jpg

# SVG optimization
npx svgo input.svg -o output.svg

Batch Processing

powershell
# Convert all SVGs to PNGs
Get-ChildItem *.svg | ForEach-Object {
  $out = $_.BaseName + ".png"
  magick $_.Name -resize 256x256 $out
}

Synapses

See synapses.json for connections.