Image manipulation from the command line

Get an image's resolution

$ magick identify going-fishing.jpg
going-fishing.jpg JPEG 5422x3648 5422x3648+0+0 8-bit sRGB 12.2217MiB 0.000u 0:00.003

Convert an image to a different format

$ magick convert going-fishing.jpg going-fishing.png

Resize an image

$ magick convert going-fishing.jpg -resize 800x600 going-fishing-resized.jpg

Only specify width or height

$ magick convert going-fishing.jpg -resize 800x going-fishing-resized-width.jpg
$ magick convert going-fishing.jpg -resize x600 going-fishing-resized-height.jpg

By percentage

$ magick convert going-fishing.jpg -resize 50% going-fishing-resized-percent.jpg

Crop an image

$ magick convert going-fishing.jpg -crop 800x600+100+100 going-fishing-cropped.jpg

Rotate an image

$ magick convert going-fishing.jpg -rotate 90 going-fishing-rotated.jpg

Add a border to an image

$ magick convert going-fishing.jpg -bordercolor black -border 10x10 going-fishing-bordered.jpg

Add text to an image

$ magick convert going-fishing.jpg -gravity South -pointsize 36 -fill white -annotate +0+10 "Going Fishing" going-fishing-text.jpg

Convert an image to grayscale

$ magick convert going-fishing.jpg -colorspace Gray going-fishing-grayscale.jpg

Create a thumbnail

$ magick convert going-fishing.jpg -thumbnail 150x150 going-fishing-thumbnail.jpg

Combine multiple images into a single image

$ magick convert image1.jpg image2.jpg image3.jpg +append combined-horizontal.jpg
$ magick convert image1.jpg image2.jpg image3.jpg -append combined-vertical.jpg

Watermark an image

$ magick convert going-fishing.jpg watermark.png -gravity southeast -geometry +10+10 -composite going-fishing-watermarked.jpg