
Image Manipulation with ImageMagick
OfficialFreeEfficiently process and manipulate images with ease.
Free · Opens the source repo
What Image Manipulation with ImageMagick does
This skill provides a robust interface for image processing using ImageMagick, a powerful command-line tool available on Windows, Linux, and macOS. It allows users to perform essential image manipulation tasks such as resizing, format conversion, and batch processing. Whether you are creating thumbnails for a website, resizing wallpapers for different screen sizes, or simply retrieving image metadata, this skill streamlines the process by integrating ImageMagick commands into your workflow.
With this skill, you can easily obtain image dimensions and detailed metadata, which is crucial for understanding the properties of your images. The resizing capabilities enable you to adjust single images or batch process multiple files, maintaining aspect ratios as needed. This flexibility is particularly useful for developers and designers who require consistent image sizes across various platforms or applications.
Batch processing is another core feature, allowing users to apply transformations to multiple images based on specific criteria. This can significantly reduce the time spent on repetitive tasks, making it an ideal tool for anyone who regularly handles large volumes of images. The skill includes practical examples for both PowerShell and Bash, ensuring that users can quickly implement the commands in their preferred environment.
Overall, this skill is designed for developers and designers who need a reliable solution for image manipulation without the overhead of complex graphical software. By leveraging ImageMagick's capabilities through this skill, you can enhance your productivity and streamline your image processing tasks.
When to use it
Use this skill when you need to efficiently resize images, convert formats, or batch process multiple images in a consistent manner.
When not to use it
This skill may not be suitable for users who require advanced graphical editing features or prefer a graphical user interface over command-line operations.
What you can build with it
Creating Thumbnails for a Website
Use this skill to batch resize images to thumbnail dimensions suitable for web display, ensuring quick load times.
Resizing Wallpapers for Different Screens
Efficiently resize wallpapers to fit various screen resolutions, making them ready for different devices.
Extracting Image Metadata for Analysis
Retrieve detailed metadata from images to analyze properties like format and color space for better asset management.
How to install Image Manipulation with ImageMagick
View source1. Install with the skills CLI
npx skills add github/awesome-copilot/image-manipulation-image-magick --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by githubImage Manipulation with ImageMagick
This skill enables image processing and manipulation tasks using ImageMagick across Windows, Linux, and macOS systems.
When to Use This Skill
Use this skill when you need to:
- Resize images (single or batch)
- Get image dimensions and metadata
- Convert between image formats
- Create thumbnails
- Process wallpapers for different screen sizes
- Batch process multiple images with specific criteria
Prerequisites
- ImageMagick installed on the system
- Windows: PowerShell with ImageMagick available as
magick(or atC:\Program Files\ImageMagick-*\magick.exe) - Linux/macOS: Bash with ImageMagick installed via package manager (
apt,brew, etc.)
Core Capabilities
1. Image Information
- Get image dimensions (width x height)
- Retrieve detailed metadata (format, color space, etc.)
- Identify image format
2. Image Resizing
- Resize single images
- Batch resize multiple images
- Create thumbnails with specific dimensions
- Maintain aspect ratios
3. Batch Processing
- Process images based on dimensions
- Filter and process specific file types
- Apply transformations to multiple files
Usage Examples
Example 0: Resolve magick executable
PowerShell (Windows):
# Prefer ImageMagick on PATH
$magick = (Get-Command magick -ErrorAction SilentlyContinue)?.Source
# Fallback: common install pattern under Program Files
if (-not $magick) {
$magick = Get-ChildItem "C:\\Program Files\\ImageMagick-*\\magick.exe" -ErrorAction SilentlyContinue |
Select-Object -First 1 -ExpandProperty FullName
}
if (-not $magick) {
throw "ImageMagick not found. Install it and/or add 'magick' to PATH."
}
Bash (Linux/macOS):
# Check if magick is available on PATH
if ! command -v magick &> /dev/null; then
echo "ImageMagick not found. Install it using your package manager:"
echo " Ubuntu/Debian: sudo apt install imagemagick"
echo " macOS: brew install imagemagick"
exit 1
fi
Example 1: Get Image Dimensions
PowerShell (Windows):
# For a single image
& $magick identify -format "%wx%h" path/to/image.jpg
# For multiple images
Get-ChildItem "path/to/images/*" | ForEach-Object {
$dimensions = & $magick identify -format "%f: %wx%h`n" $_.FullName
Write-Host $dimensions
}
Bash (Linux/macOS):
# For a single image
magick identify -format "%wx%h" path/to/image.jpg
# For multiple images
for img in path/to/images/*; do
magick identify -format "%f: %wx%h\n" "$img"
done
Example 2: Resize Images
PowerShell (Windows):
# Resize a single image
& $magick input.jpg -resize 427x240 output.jpg
# Batch resize images
Get-ChildItem "path/to/images/*" | ForEach-Object {
& $magick $_.FullName -resize 427x240 "path/to/output/thumb_$($_.Name)"
}
Bash (Linux/macOS):
# Resize a single image
magick input.jpg -resize 427x240 output.jpg
# Batch resize images
for img in path/to/images/*; do
filename=$(basename "$img")
magick "$img" -resize 427x240 "path/to/output/thumb_$filename"
done
Example 3: Get Detailed Image Information
PowerShell (Windows):
# Get verbose information about an image
& $magick identify -verbose path/to/image.jpg
Bash (Linux/macOS):
# Get verbose information about an image
magick identify -verbose path/to/image.jpg
Example 4: Process Images Based on Dimensions
PowerShell (Windows):
Get-ChildItem "path/to/images/*" | ForEach-Object {
$dimensions = & $magick identify -format "%w,%h" $_.FullName
if ($dimensions) {
$width,$height = $dimensions -split ','
if ([int]$width -eq 2560 -or [int]$height -eq 1440) {
Write-Host "Processing $($_.Name)"
& $magick $_.FullName -resize 427x240 "path/to/output/thumb_$($_.Name)"
}
}
}
Bash (Linux/macOS):
for img in path/to/images/*; do
dimensions=$(magick identify -format "%w,%h" "$img")
if [[ -n "$dimensions" ]]; then
width=$(echo "$dimensions" | cut -d',' -f1)
height=$(echo "$dimensions" | cut -d',' -f2)
if [[ "$width" -eq 2560 || "$height" -eq 1440 ]]; then
filename=$(basename "$img")
echo "Processing $filename"
magick "$img" -resize 427x240 "path/to/output/thumb_$filename"
fi
fi
done
Guidelines
- Always quote file paths - Use quotes around file paths that might contain spaces
- Use the
&operator (PowerShell) - Invoke the magick executable using&in PowerShell - Store the path in a variable (PowerShell) - Assign the ImageMagick path to
$magickfor cleaner code - Wrap in loops - When processing multiple files, use
ForEach-Object(PowerShell) orforloops (Bash) - Verify dimensions first - Check image dimensions before processing to avoid unnecessary operations
- Use appropriate resize flags - Consider using
!to force exact dimensions or^for minimum dimensions
Common Patterns
PowerShell Patterns
Pattern: Store ImageMagick Path
$magick = (Get-Command magick).Source
Pattern: Get Dimensions as Variables
$dimensions = & $magick identify -format "%w,%h" $_.FullName
$width,$height = $dimensions -split ','
Pattern: Conditional Processing
if ([int]$width -gt 1920) {
& $magick $_.FullName -resize 1920x1080 $outputPath
}
Pattern: Create Thumbnails
& $magick $_.FullName -resize 427x240 "thumbnails/thumb_$($_.Name)"
Bash Patterns
Pattern: Check ImageMagick Installation
command -v magick &> /dev/null || { echo "ImageMagick required"; exit 1; }
Pattern: Get Dimensions as Variables
dimensions=$(magick identify -format "%w,%h" "$img")
width=$(echo "$dimensions" | cut -d',' -f1)
height=$(echo "$dimensions" | cut -d',' -f2)
Pattern: Conditional Processing
if [[ "$width" -gt 1920 ]]; then
magick "$img" -resize 1920x1080 "$outputPath"
fi
Pattern: Create Thumbnails
filename=$(basename "$img")
magick "$img" -resize 427x240 "thumbnails/thumb_$filename"
Limitations
- Large batch operations may be memory-intensive
- Some complex operations may require additional ImageMagick delegates
- On older Linux systems, use
convertinstead ofmagick(ImageMagick 6.x vs 7.x)
Frequently asked questions about Image Manipulation with ImageMagick
Similar skills
Nano Banana Pro OpenRouter
Generate and edit images with OpenRouter's Gemini 3 Pro.
Generate Image
Create and edit images using AI models.
CLI for GIMP
Powerful command-line image editing for GIMP users.
MuAPI Media Editing
AI-powered image and video editing made simple.
Nano Banana 2
Generate and edit images with ease using AI.
Image Enhancer
Enhance image quality for professional use.
