Basic Conversion
1# Simple conversion
2convert input.png output.jpg
3
4# Multiple files
5convert input1.png input2.png input3.png output.pdf
6
7# Specify quality
8convert input.png -quality 90 output.jpg
1# PNG to JPG
2convert image.png image.jpg
3
4# JPG to PNG
5convert image.jpg image.png
6
7# Any to WebP
8convert image.jpg -quality 80 image.webp
9
10# SVG to PNG (rasterize)
11convert -density 300 image.svg image.png
12
13# PDF to images (one per page)
14convert -density 150 document.pdf page-%03d.png
Quality & Compression
JPEG Quality
1# High quality (90-100)
2convert input.png -quality 95 output.jpg
3
4# Medium quality (75-90)
5convert input.png -quality 85 output.jpg
6
7# Low quality (60-75)
8convert input.png -quality 70 output.jpg
9
10# Progressive JPEG
11convert input.png -quality 85 -interlace Plane output.jpg
PNG Compression
1# Maximum compression (slow)
2convert input.png -quality 95 -define png:compression-level=9 output.png
3
4# Fast compression
5convert input.png -quality 95 -define png:compression-level=1 output.png
6
7# 8-bit PNG (smaller file)
8convert input.png -colors 256 output.png
WebP
1# Lossy WebP
2convert input.jpg -quality 80 output.webp
3
4# Lossless WebP
5convert input.png -define webp:lossless=true output.webp
6
7# With alpha channel
8convert input.png -quality 80 -define webp:alpha-quality=100 output.webp
Resizing & Scaling
Resize by Dimensions
1# Exact size (may distort)
2convert input.jpg -resize 800x600! output.jpg
3
4# Fit within dimensions (maintain aspect ratio)
5convert input.jpg -resize 800x600 output.jpg
6
7# Resize width only
8convert input.jpg -resize 800x output.jpg
9
10# Resize height only
11convert input.jpg -resize x600 output.jpg
12
13# Resize by percentage
14convert input.jpg -resize 50% output.jpg
Thumbnails
1# Create thumbnail (max 200x200)
2convert input.jpg -thumbnail 200x200 thumb.jpg
3
4# Square thumbnail (crop to center)
5convert input.jpg -thumbnail 200x200^ -gravity center -extent 200x200 thumb.jpg
6
7# Multiple thumbnails
8convert input.jpg -thumbnail 100x100 small.jpg \
9 -thumbnail 200x200 medium.jpg \
10 -thumbnail 400x400 large.jpg
Sampling & Filtering
1# High-quality resize (Lanczos)
2convert input.jpg -filter Lanczos -resize 800x600 output.jpg
3
4# Fast resize (Point)
5convert input.jpg -filter Point -resize 800x600 output.jpg
6
7# Sharpen after resize
8convert input.jpg -resize 800x600 -sharpen 0x1 output.jpg
Cropping
Crop by Dimensions
1# Crop 800x600 from top-left
2convert input.jpg -crop 800x600+0+0 output.jpg
3
4# Crop from center
5convert input.jpg -gravity center -crop 800x600+0+0 output.jpg
6
7# Crop and remove canvas
8convert input.jpg -crop 800x600+100+100 +repage output.jpg
Auto-Crop
1# Remove white borders
2convert input.jpg -fuzz 10% -trim +repage output.jpg
3
4# Remove black borders
5convert input.jpg -bordercolor black -border 1x1 -fuzz 10% -trim +repage output.jpg
Aspect Ratio Crop
1# Crop to 16:9
2convert input.jpg -gravity center -crop 16:9 +repage output.jpg
3
4# Crop to square
5convert input.jpg -gravity center -crop 1:1 +repage output.jpg
Color Operations
Adjust Brightness/Contrast
1# Increase brightness
2convert input.jpg -modulate 120,100,100 output.jpg
3
4# Increase contrast
5convert input.jpg -contrast output.jpg
6
7# Brightness and contrast
8convert input.jpg -brightness-contrast 10x20 output.jpg
Color Adjustments
1# Grayscale
2convert input.jpg -colorspace Gray output.jpg
3
4# Sepia
5convert input.jpg -sepia-tone 80% output.jpg
6
7# Adjust saturation
8convert input.jpg -modulate 100,150,100 output.jpg
9
10# Adjust hue
11convert input.jpg -modulate 100,100,120 output.jpg
Color Space Conversion
1# RGB to CMYK
2convert input.jpg -colorspace CMYK output.jpg
3
4# sRGB to Linear RGB
5convert input.jpg -colorspace RGB output.jpg
6
7# Apply ICC profile
8convert input.jpg -profile sRGB.icc -profile AdobeRGB.icc output.jpg
Transparency & Alpha
Add/Remove Alpha Channel
1# Add alpha channel
2convert input.jpg -alpha on output.png
3
4# Remove alpha (flatten to white)
5convert input.png -background white -alpha remove output.jpg
6
7# Flatten to specific color
8convert input.png -background "#FF0000" -alpha remove output.jpg
Make Color Transparent
1# Make white transparent
2convert input.jpg -transparent white output.png
3
4# Make color range transparent (with fuzz)
5convert input.jpg -fuzz 10% -transparent white output.png
Alpha Operations
1# Extract alpha channel
2convert input.png -alpha extract alpha.png
3
4# Apply alpha mask
5convert input.jpg mask.png -compose CopyOpacity -composite output.png
Batch Processing
Process Multiple Files
1# Convert all JPGs to PNG
2mogrify -format png *.jpg
3
4# Resize all images in directory
5mogrify -resize 800x600 *.jpg
6
7# Process with new names
8for file in *.jpg; do
9 convert "$file" -resize 800x600 "resized_$file"
10done
Batch with Different Operations
1# Resize and convert
2for file in *.png; do
3 convert "$file" -resize 800x600 -quality 90 "${file%.png}.jpg"
4done
5
6# Create thumbnails
7for file in *.jpg; do
8 convert "$file" -thumbnail 200x200 "thumb_$file"
9done
Get Image Info
1# Basic info
2identify image.jpg
3
4# Detailed info
5identify -verbose image.jpg
6
7# Just dimensions
8identify -format "%wx%h" image.jpg
9
10# File size
11identify -format "%b" image.jpg
Advanced Operations
Composite Images
1# Overlay image
2convert background.jpg overlay.png -gravity center -composite output.jpg
3
4# Blend two images
5convert image1.jpg image2.jpg -blend 50x50 output.jpg
Add Border
1# Simple border
2convert input.jpg -border 10x10 -bordercolor black output.jpg
3
4# Frame effect
5convert input.jpg -mattecolor "#FF0000" -frame 10x10+5+5 output.jpg
Rotate & Flip
1# Rotate 90 degrees
2convert input.jpg -rotate 90 output.jpg
3
4# Flip horizontal
5convert input.jpg -flop output.jpg
6
7# Flip vertical
8convert input.jpg -flip output.jpg
9
10# Auto-orient based on EXIF
11convert input.jpg -auto-orient output.jpg
Optimization
Optimize File Size
1# Strip metadata
2convert input.jpg -strip output.jpg
3
4# Optimize PNG
5convert input.png -strip -define png:compression-level=9 output.png
6
7# Optimize JPEG
8convert input.jpg -strip -quality 85 -sampling-factor 4:2:0 output.jpg
Progressive Images
1# Progressive JPEG
2convert input.jpg -interlace Plane output.jpg
3
4# Progressive PNG
5convert input.png -interlace PNG output.png
Quick Reference
| Task | Command |
|---|
| Convert format | convert input.png output.jpg |
| Resize | convert input.jpg -resize 800x600 output.jpg |
| Thumbnail | convert input.jpg -thumbnail 200x200 thumb.jpg |
| Crop | convert input.jpg -crop 800x600+0+0 output.jpg |
| Grayscale | convert input.jpg -colorspace Gray output.jpg |
| Quality | convert input.png -quality 90 output.jpg |
| Strip metadata | convert input.jpg -strip output.jpg |
| Batch resize | mogrify -resize 800x600 *.jpg |
Tips
- Use
-quality 85-90 for JPEGs (good balance) - Use
-strip to remove metadata and reduce file size - Use
-thumbnail instead of -resize for small images (faster) - Use
mogrify for in-place batch processing - Use
-sampling-factor 4:2:0 for smaller JPEGs - Add
-interlace Plane for progressive JPEGs (better web loading) - Use
-filter Lanczos for high-quality resizing - Always use
+repage after cropping to remove canvas info
Related Snippets