Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
aia-11-hn-mib avatar

Imagemagick

  • 17 installs
  • 1 repo stars
  • Updated November 15, 2025
  • aia-11-hn-mib/mib-mockinterviewaibot

imagemagick is a Claude Code skill that documents ImageMagick command-line tools for converting, resizing, cropping, and applying effects to images.

About

imagemagick is a Claude Code skill for programmatic image processing with the ImageMagick command-line tools. A developer uses it to convert image formats, resize and crop, apply effects and filters, generate thumbnails, add watermarks, and batch-process images from the shell. It documents the magick, convert, mogrify, identify, montage, and composite commands with geometry syntax.

  • Command-line image processing: convert, resize, crop, effects, transforms
  • Batch processing with mogrify and thumbnail-generation patterns
  • Covers magick, convert, mogrify, identify, montage, and composite tools

Imagemagick by the numbers

  • 17 all-time installs (skills.sh)
  • Ranked #1,014 of 1,337 Generative Media skills by installs in the Skillselion catalog
  • Data as of Jul 28, 2026 (Skillselion catalog sync)
At a glance

imagemagick capabilities & compatibility

Free; ImageMagick is open-source and runs locally with no API key.

Capabilities
image conversion · image resize · thumbnail generation · batch image processing
Platforms
macOS · Linux
Pricing
Free
From the docs

What imagemagick says it does

ImageMagick is a comprehensive, free, open-source software suite for creating, editing, converting, and manipulating images in over 250 formats.
SKILL.md
In ImageMagick v7+, `magick` is the recommended command.
SKILL.md
npx skills add https://github.com/aia-11-hn-mib/mib-mockinterviewaibot --skill imagemagick

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs17
repo stars1
Last updatedNovember 15, 2025
Repositoryaia-11-hn-mib/mib-mockinterviewaibot

What it does

Convert, resize, crop, and apply effects to images from the command line with ImageMagick.

Who is it for?

Format conversion, resizing, cropping, effects, thumbnails, watermarks, and batch image processing.

Skip if: Video or audio processing, which ImageMagick does not cover.

When should I use this skill?

Manipulating images programmatically via shell commands: convert, resize, crop, or batch-process.

What you get

Images are converted, resized, cropped, filtered, or batch-processed via ImageMagick commands.

By the numbers

  • over 250 image formats
  • 6 primary commands (magick, convert, mogrify, identify, montage, composite)

Files

SKILL.mdMarkdownGitHub ↗

ImageMagick Skill

ImageMagick is a comprehensive, free, open-source software suite for creating, editing, converting, and manipulating images in over 250 formats. This skill covers command-line usage of ImageMagick tools for programmatic image processing.

When to Use This Skill

Use this skill when:

  • Converting images between formats (PNG, JPEG, WebP, GIF, etc.)
  • Resizing, cropping, or transforming images
  • Applying effects, filters, or adjustments to images
  • Creating thumbnails or image previews
  • Batch processing multiple images
  • Compositing or combining images
  • Adding watermarks, borders, or text to images
  • Optimizing images for web or print

Core Concepts

Primary Commands

ImageMagick provides several command-line tools:

  • magick: Modern unified command for all operations (ImageMagick v7+)
  • convert: Legacy command for image conversion and manipulation (still widely used)
  • mogrify: Modify images in-place (batch processing)
  • identify: Display image metadata and properties
  • montage: Create image composites and contact sheets
  • composite: Overlay images

Note: In ImageMagick v7+, magick is the recommended command. Legacy convert syntax: convert input.png output.jpg becomes magick input.png output.jpg

Command Structure

Basic syntax:

magick [input-options] input-file [operations] [output-options] output-file

Operations are applied left to right in the order specified.

Geometry Specifications

ImageMagick uses geometry strings for dimensions:

  • 100x100 - Resize to fit within 100×100 (maintains aspect ratio)
  • 100x100! - Force exact size (ignores aspect ratio)
  • 100x100^ - Fill 100×100 (may crop, maintains aspect ratio)
  • 100x - Resize to width 100 (auto height)
  • x100 - Resize to height 100 (auto width)
  • 50% - Scale to 50% of original
  • 100x100+10+20 - 100×100 region at offset (10, 20)

Installation

macOS:

brew install imagemagick

Ubuntu/Debian:

sudo apt-get install imagemagick

Verify installation:

magick -version
# or
convert -version

Common Operations

Format Conversion

Convert between image formats:

# PNG to JPEG
magick input.png output.jpg

# JPEG to WebP
magick input.jpg output.webp

# Multiple formats
magick input.png output.jpg output.webp output.gif

# Set JPEG quality (0-100)
magick input.png -quality 85 output.jpg

# Convert with compression
magick input.png -quality 90 -strip output.jpg

Resizing

Resize images while maintaining aspect ratio:

# Resize to fit within 800×600
magick input.jpg -resize 800x600 output.jpg

# Resize to specific width (auto height)
magick input.jpg -resize 800x output.jpg

# Resize to specific height (auto width)
magick input.jpg -resize x600 output.jpg

# Resize to exact dimensions (ignores aspect ratio)
magick input.jpg -resize 800x600! output.jpg

# Scale by percentage
magick input.jpg -resize 50% output.jpg

# Resize only if larger (shrink only)
magick input.jpg -resize 800x600\> output.jpg

# Resize only if smaller (enlarge only)
magick input.jpg -resize 800x600\< output.jpg

Cropping

Extract portions of images:

# Crop 400×400 pixels starting at (100, 100)
magick input.jpg -crop 400x400+100+100 output.jpg

# Crop from center
magick input.jpg -gravity center -crop 400x400+0+0 output.jpg

# Remove virtual canvas after crop
magick input.jpg -crop 400x400+100+100 +repage output.jpg

# Crop to aspect ratio from center
magick input.jpg -gravity center -crop 16:9 output.jpg

Resize + Crop (Thumbnail Generation)

Common pattern for creating square thumbnails:

# Resize to fill 100×100, then crop from center
magick input.jpg -resize 100x100^ -gravity center -extent 100x100 output.jpg

# Alternative using crop
magick input.jpg -resize 275x275^ -gravity center -crop 275x275+0+0 +repage output.jpg

# Create thumbnail with specific background
magick input.jpg -resize 100x100 -background white -gravity center -extent 100x100 output.jpg

Effects and Filters

Apply visual effects:

# Blur
magick input.jpg -blur 0x8 output.jpg

# Gaussian blur with radius 5, sigma 3
magick input.jpg -gaussian-blur 5x3 output.jpg

# Sharpen
magick input.jpg -sharpen 0x1 output.jpg

# Grayscale
magick input.jpg -colorspace Gray output.jpg

# Sepia tone
magick input.jpg -sepia-tone 80% output.jpg

# Negate (invert colors)
magick input.jpg -negate output.jpg

# Edge detection
magick input.jpg -edge 3 output.jpg

# Emboss
magick input.jpg -emboss 2 output.jpg

# Oil painting effect
magick input.jpg -paint 4 output.jpg

# Charcoal drawing
magick input.jpg -charcoal 2 output.jpg

Adjustments

Modify brightness, contrast, and colors:

# Adjust brightness (+/- 0-100)
magick input.jpg -brightness-contrast 10x0 output.jpg

# Adjust contrast
magick input.jpg -brightness-contrast 0x20 output.jpg

# Both brightness and contrast
magick input.jpg -brightness-contrast 10x20 output.jpg

# Adjust saturation
magick input.jpg -modulate 100,150,100 output.jpg

# Adjust hue
magick input.jpg -modulate 100,100,120 output.jpg

# Auto level (normalize contrast)
magick input.jpg -auto-level output.jpg

# Auto gamma correction
magick input.jpg -auto-gamma output.jpg

# Normalize (stretch histogram)
magick input.jpg -normalize output.jpg

Rotation and Flipping

Transform image orientation:

# Rotate 90 degrees clockwise
magick input.jpg -rotate 90 output.jpg

# Rotate 180 degrees
magick input.jpg -rotate 180 output.jpg

# Rotate counter-clockwise
magick input.jpg -rotate -90 output.jpg

# Rotate with background color
magick input.jpg -background white -rotate 45 output.jpg

# Flip vertically
magick input.jpg -flip output.jpg

# Flip horizontally (mirror)
magick input.jpg -flop output.jpg

# Auto-orient based on EXIF
magick input.jpg -auto-orient output.jpg

Borders and Frames

Add borders to images:

# Add 10px black border
magick input.jpg -border 10x10 output.jpg

# Add border with specific color
magick input.jpg -bordercolor red -border 10x10 output.jpg

# Add frame effect
magick input.jpg -mattecolor gray -frame 10x10+5+5 output.jpg

# Add shadow effect
magick input.jpg \( +clone -background black -shadow 80x3+5+5 \) \
  +swap -background white -layers merge +repage output.jpg

Text and Watermarks

Add text overlays:

# Add simple text
magick input.jpg -pointsize 30 -fill white -annotate +10+30 "Hello" output.jpg

# Add text with positioning
magick input.jpg -gravity south -pointsize 20 -fill white \
  -annotate +0+10 "Copyright 2025" output.jpg

# Add text with background
magick input.jpg -gravity center -pointsize 40 -fill white \
  -undercolor black -annotate +0+0 "Watermark" output.jpg

# Add semi-transparent watermark
magick input.jpg \( -background none -fill "rgba(255,255,255,0.5)" \
  -pointsize 50 label:"DRAFT" \) -gravity center -compose over -composite output.jpg

Compositing

Combine multiple images:

# Overlay watermark on image
magick input.jpg watermark.png -gravity southeast -composite output.jpg

# Overlay with transparency
magick input.jpg watermark.png -gravity center \
  -compose over -composite output.jpg

# Tile pattern
magick input.jpg pattern.png -compose over -tile -composite output.jpg

# Side-by-side images
magick input1.jpg input2.jpg +append output.jpg

# Stack images vertically
magick input1.jpg input2.jpg -append output.jpg

Format-Specific Options

Optimize for different formats:

# JPEG with quality and strip metadata
magick input.png -quality 85 -strip output.jpg

# Progressive JPEG
magick input.png -quality 85 -interlace Plane output.jpg

# PNG with compression level (0-9)
magick input.jpg -quality 95 output.png

# WebP with quality
magick input.jpg -quality 80 output.webp

# WebP lossless
magick input.png -define webp:lossless=true output.webp

# GIF with optimization
magick input.png -colors 256 output.gif

# Transparent background PNG
magick input.jpg -transparent white output.png

Batch Processing

Using mogrify

Modify multiple files in-place:

# Convert all JPEGs to PNG in current directory
mogrify -format png *.jpg

# Resize all images in directory
mogrify -resize 800x600 *.jpg

# Apply to output directory (preserves originals)
mogrify -path ./output -resize 800x600 *.jpg

# Batch thumbnail generation
mogrify -path ./thumbnails -resize 275x275^ -gravity center \
  -crop 275x275+0+0 +repage *.jpg

# Batch format conversion with quality
mogrify -path ./optimized -format jpg -quality 85 -strip *.png

Using shell loops

For more complex batch operations:

# Convert with custom naming
for img in *.jpg; do
  magick "$img" -resize 800x600 "resized_$img"
done

# Multi-step processing
for img in *.jpg; do
  magick "$img" -resize 1920x1080^ -gravity center \
    -crop 1920x1080+0+0 +repage -quality 85 "processed_$img"
done

# Different output format
for img in *.png; do
  magick "$img" -quality 90 "${img%.png}.jpg"
done

Image Information

Using identify

Get image metadata:

# Basic info
identify image.jpg

# Detailed information
identify -verbose image.jpg

# Format only
identify -format "%f: %wx%h %b\n" image.jpg

# Specific attributes
identify -format "%f: %wx%h, %[colorspace], %[type]\n" image.jpg

# File size
identify -format "%f: %b\n" image.jpg

# Multiple images
identify *.jpg

Common format strings

  • %f - filename
  • %w - width
  • %h - height
  • %b - file size
  • %[colorspace] - colorspace
  • %[type] - image type
  • %[channels] - number of channels
  • %[depth] - bit depth

Advanced Techniques

Creating Contact Sheets

Use montage:

# Basic grid
montage *.jpg -geometry 200x200+2+2 contact-sheet.jpg

# With labels
montage *.jpg -geometry 200x200+2+2 -label '%f' contact-sheet.jpg

# Custom layout (3 columns)
montage *.jpg -tile 3x -geometry 200x200+5+5 contact-sheet.jpg

Animated GIFs

Create animations:

# Create GIF from images
magick -delay 100 -loop 0 frame*.png animated.gif

# Optimize GIF
magick animated.gif -fuzz 5% -layers Optimize optimized.gif

# Extract frames from GIF
magick animated.gif frame_%03d.png

Complex Pipelines

Chain multiple operations:

# Resize, crop, add border, adjust brightness
magick input.jpg \
  -resize 1000x1000^ \
  -gravity center \
  -crop 1000x1000+0+0 +repage \
  -bordercolor black -border 5x5 \
  -brightness-contrast 5x10 \
  -quality 90 \
  output.jpg

# Create thumbnail with watermark
magick input.jpg \
  -resize 400x400^ \
  -gravity center \
  -extent 400x400 \
  \( watermark.png -resize 100x100 \) \
  -gravity southeast -geometry +10+10 \
  -composite \
  output.jpg

Performance Optimization

Memory and Speed

# Limit memory usage (useful for large images)
magick -limit memory 2GB -limit map 4GB input.jpg -resize 50% output.jpg

# Set thread count
magick -limit thread 4 input.jpg -resize 50% output.jpg

# Use streaming for large files
magick -define stream:buffer-size=0 huge.jpg -resize 50% output.jpg

Quality vs Size Trade-offs

# High quality (larger file)
magick input.jpg -quality 95 output.jpg

# Balanced (recommended for web)
magick input.jpg -quality 85 -strip output.jpg

# Lower quality (smaller file)
magick input.jpg -quality 70 -sampling-factor 4:2:0 -strip output.jpg

# Progressive JPEG (better for web)
magick input.jpg -quality 85 -interlace Plane -strip output.jpg

Common Patterns

Avatar/Profile Picture Generation

# Square thumbnail from any aspect ratio
magick input.jpg -resize 200x200^ -gravity center -extent 200x200 avatar.jpg

# Circular avatar (PNG with transparency)
magick input.jpg -resize 200x200^ -gravity center -extent 200x200 \
  \( +clone -threshold -1 -negate -fill white -draw "circle 100,100 100,0" \) \
  -alpha off -compose copy_opacity -composite avatar.png

Responsive Images

# Generate multiple sizes
for size in 320 640 1024 1920; do
  magick input.jpg -resize ${size}x -quality 85 "output-${size}w.jpg"
done

Watermarking

# Bottom-right watermark
magick input.jpg watermark.png -gravity southeast \
  -geometry +10+10 -composite output.jpg

# Tiled watermark
magick input.jpg \( watermark.png -alpha set -channel A \
  -evaluate multiply 0.3 +channel \) -tile -composite output.jpg

Error Handling

Common issues and solutions:

File not found:

# Check file exists
[ -f input.jpg ] && magick input.jpg output.png || echo "File not found"

Invalid geometry:

# Validate dimensions first
identify -format "%wx%h" input.jpg

Memory errors:

# Limit resources
magick -limit memory 1GB -limit map 2GB input.jpg output.png

Best Practices

1. Always use `-strip` to remove metadata (reduces file size) 2. Set appropriate quality (85 for JPEG is good balance) 3. Use `+repage` after crop to reset virtual canvas 4. Quote file paths with spaces: "my image.jpg" 5. Test on sample before batch processing 6. Backup originals when using mogrify 7. Use `-auto-orient` to respect EXIF orientation 8. Progressive JPEGs for web (use -interlace Plane) 9. Limit memory for large batches to prevent crashes 10. Check output after complex operations

Troubleshooting

Policy Restrictions

Some systems restrict ImageMagick operations for security:

# Check policy
identify -list policy

# Edit policy file (if needed)
sudo nano /etc/ImageMagick-6/policy.xml
# or
sudo nano /etc/ImageMagick-7/policy.xml

Common Errors

"convert: not authorized"

  • ImageMagick security policy blocking operation
  • Edit policy.xml to allow specific formats/operations

"convert: no decode delegate"

  • Missing format support library
  • Install additional libraries (libjpeg, libpng, libwebp, etc.)

"convert: memory allocation failed"

  • Image too large or insufficient memory
  • Use -limit flags or process in smaller chunks

Resources

  • Official Documentation: https://imagemagick.org/
  • Command-line Options: https://imagemagick.org/script/command-line-options.php
  • Examples: https://imagemagick.org/Usage/
  • Format Support: https://imagemagick.org/script/formats.php

Command Reference Quick Guide

Format Conversion:

magick input.ext output.ext

Resize:

magick input.jpg -resize WIDTHxHEIGHT output.jpg

Crop:

magick input.jpg -crop WIDTHxHEIGHT+X+Y output.jpg

Thumbnail:

magick input.jpg -resize 100x100^ -gravity center -extent 100x100 thumb.jpg

Effects:

magick input.jpg -blur 0x8 output.jpg

Batch:

mogrify -resize 800x600 *.jpg

Info:

identify -verbose image.jpg

Related skills

FAQ

Which ImageMagick command is recommended?

In ImageMagick v7+, magick is the recommended unified command, replacing legacy convert.

How do I batch-process images?

Use mogrify to modify images in place, for example resizing all JPEGs to 800px width.

How many formats does ImageMagick support?

The docs state over 250 formats.

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.