ImageMagick Image Conversion
Project: Project-independent Gitignored: Yes
Trigger
Use this skill when users request image manipulation tasks including:
- Converting between image formats (PNG, JPEG, WebP, GIF, TIFF, etc.)
- Resizing images (dimensions, percentages, aspect ratios)
- Batch processing multiple images
- Adjusting image quality and compression
- Creating thumbnails
- Basic image transformations (rotate, flip, crop)
Overview
ImageMagick is a powerful command-line tool for image processing. This skill provides guidance for using the magick command to perform common image conversion and manipulation tasks.
Key Command Pattern:
magick input-file [options] output-fileCommon Use Cases
Format Conversion
Basic format conversion:
magick image.jpg image.png
magick photo.png photo.webpBatch convert all JPEGs to PNG:
magick mogrify -format png *.jpgConvert with specific output directory:
mkdir -p output
magick mogrify -format webp -path output/ *.jpgResizing Images
Resize by percentage:
magick image.jpg -resize 50% output.jpgResize to specific width (maintain aspect ratio):
magick image.jpg -resize 800x output.jpgResize to specific height (maintain aspect ratio):
magick image.jpg -resize x600 output.jpgResize to fit within dimensions (maintain aspect ratio):
magick image.jpg -resize 800x600 output.jpgResize to exact dimensions (ignore aspect ratio):
magick image.jpg -resize 800x600! output.jpgResize only if larger:
magick image.jpg -resize '800x600>' output.jpgResize only if smaller:
magick image.jpg -resize '800x600<' output.jpgQuality and Compression
Set JPEG quality (1-100, default 92):
magick image.jpg -quality 85 output.jpgOptimize PNG compression:
magick image.png -quality 95 output.pngCreate high-quality WebP:
magick image.jpg -quality 90 output.webpThumbnails
Generate thumbnail (fast, lower quality):
magick image.jpg -thumbnail 200x200 thumb.jpgGenerate thumbnail with padding:
magick image.jpg -thumbnail 200x200 -background white -gravity center -extent 200x200 thumb.jpgBatch Operations
Resize all images in directory:
magick mogrify -resize 800x600 -path resized/ *.jpgConvert and resize in one operation:
magick mogrify -resize 1200x -format webp -quality 85 -path output/ *.jpgProcess specific file types:
magick mogrify -resize 50% -path smaller/ *.{jpg,png,gif}Image Information
Display image information:
magick identify image.jpgDetailed image information:
magick identify -verbose image.jpgAdvanced Transformations
Rotate image:
magick image.jpg -rotate 90 rotated.jpgFlip horizontally:
magick image.jpg -flop flipped.jpgFlip vertically:
magick image.jpg -flip flipped.jpgCrop to specific region:
magick image.jpg -crop 800x600+100+100 cropped.jpgAuto-orient based on EXIF:
magick image.jpg -auto-orient output.jpgStrip metadata (reduce file size):
magick image.jpg -strip output.jpgImportant Notes
mogrify vs convert
magick mogrify: Modifies files in-place or writes to specified path
- Use -path option to preserve originals - Efficient for batch operations
magick convert(or justmagick): Creates new files
- Always preserves original - Better for single-file operations
Performance Tips
- Use
-thumbnailfor thumbnails: Faster than-resizefor small previews - Use
-stripto remove metadata: Reduces file size significantly - Batch operations: Process multiple files in one
mogrifycommand - Quality settings: 85-90 is usually optimal for JPEG (balances size/quality)
Format Recommendations
- JPEG: Photos, complex images with gradients (lossy)
- PNG: Screenshots, graphics with transparency (lossless)
- WebP: Modern format, excellent compression (lossy or lossless)
- GIF: Simple animations, limited colors
- TIFF: Archival, high-quality storage
Safety Considerations
Always test commands on copies first:
# Create test directory
mkdir -p test-output
# Test on single file
magick original.jpg -resize 50% test-output/test.jpg
# Verify result before batch processingUse -path with mogrify to preserve originals:
# This preserves originals in current directory
magick mogrify -resize 800x -path resized/ *.jpgQuote wildcards in shell:
# Prevents premature shell expansion
magick mogrify -resize '800x600>' -path output/ '*.jpg'Common Patterns
Web Optimization Workflow
# Create optimized versions for web
mkdir -p web-optimized
# Convert to WebP with quality 85, resize to max 1920px width
magick mogrify -resize 1920x -quality 85 -format webp -path web-optimized/ *.jpg
# Strip metadata to reduce size
magick mogrify -strip web-optimized/*.webpThumbnail Generation
# Create thumbnail directory
mkdir -p thumbnails
# Generate 300x300 thumbnails with white padding
for img in *.jpg; do
magick "$img" -thumbnail 300x300 -background white -gravity center -extent 300x300 "thumbnails/${img%.jpg}_thumb.jpg"
doneMulti-Format Export
# Export to multiple formats for compatibility
mkdir -p exports/{png,webp,jpg}
for img in source/*.png; do
name=$(basename "$img" .png)
magick "$img" -quality 90 "exports/png/$name.png"
magick "$img" -quality 85 "exports/webp/$name.webp"
magick "$img" -quality 85 "exports/jpg/$name.jpg"
doneTroubleshooting
Check ImageMagick version:
magick -versionVerify supported formats:
magick identify -list formatTest command on single file first:
# Always test before batch operations
magick test-image.jpg -resize 50% test-output.jpgWhen to Use This Skill
✓ Use this skill for:
- Format conversions between standard image types
- Resizing operations (dimensions, percentages)
- Quality adjustments and compression
- Batch processing workflows
- Generating thumbnails or previews
- Basic transformations (rotate, crop, flip)
✗ Don't use this skill for:
- Advanced photo editing (use GIMP, Photoshop)
- Complex filters or effects (consider dedicated tools)
- Video processing (use FFmpeg)
- Vector graphics (use Inkscape, Illustrator)
Integration with Workflows
This skill complements other development workflows:
- Web development: Optimize images for deployment
- Documentation: Generate screenshots and diagrams
- CI/CD: Automate image processing in pipelines
- Content creation: Prepare images for various platforms
The magick command is typically available via Homebrew (brew install imagemagick) or system package managers.