Batch Crop Images using ImageMagick


Today, one of the tasks I performed involved batch cropping numerous pictures. I found ImageMagick to be very useful for scaling and cropping images. Mogrify, a command within the ImageMagick package, enables us to perform various operations on multiple images. I am posting this guide as a future reference for myself and perhaps it will be helpful for others as well.

Welcome back to another episode of Continuous Improvement, the podcast where we explore various tools and techniques for enhancing our productivity and achieving personal growth. I’m your host, Victor, and in today’s episode, we’ll be discussing an essential tool for image manipulation – ImageMagick. Specifically, we’ll be focusing on the batch cropping feature using the Mogrify command. So without further ado, let’s dive in!

Have you ever found yourself needing to resize or crop multiple images at once? It can be a time-consuming task if done manually, but fear not! ImageMagick is here to save the day. In today’s episode, we’ll guide you through the installation process and show you how to efficiently batch crop your images.

First things first, let’s ensure that we have all the necessary dependencies installed. We recommend using MacPorts for this purpose. To install MacPorts, visit the official website at https://www.macports.org/install.php. Once installed, you might encounter an error message when using the port command. But don’t worry, we have a solution for that too.

To resolve the error message, you’ll need to update your shell’s environment to work with MacPorts. Open your terminal and enter the following commands:

> _export PATH=$PATH:/opt/local/bin_
> _source .profile_
> _sudo port -v selfupdate_

Great! Now that we have MacPorts set up, let’s move on to installing ImageMagick. You can find the installation files at http://www.imagemagick.org/script/binary-releases.php. Once you’ve downloaded the files, run the command:

> _sudo port install ImageMagick_

Sometimes, after installing ImageMagick, you might encounter an error message like “convert: command not found.” Don’t worry; we have a workaround for that too. Let’s set the necessary environment variables. First, set the MAGICK_HOME variable to the path where you extracted the ImageMagick files:

> _export MAGICK_HOME="$HOME/ImageMagick-6.9.1"_

Next, ensure that the bin subdirectory of the extracted package is in your executable search path:

> _export PATH="$MAGICK_HOME/bin:$PATH"_

Lastly, set the DYLD_LIBRARY_PATH environment variable:

> _export DYLD_LIBRARY_PATH="$MAGICK_HOME/lib"_

Now that we have ImageMagick successfully installed, let’s move on to an optional step – adding a missing decoding library. If you come across an error message like “convert: no decode delegate for this image format,” here’s what you can do.

Firstly, visit http://www.imagemagick.org/download/delegates/ and download the required or missing delegate library, such as jpegsr9a.zip. Once downloaded, unzip the file and change your directory to the unzipped folder using the command cd jpeg-9a.

Now that we have everything set up, let’s explore how to use ImageMagick and Mogrify for batch cropping your images. To avoid overwriting your original image files, it’s always a good practice to create a new folder and back up your images there before performing any modifications.

If you want to resize a single image to a specific height while maintaining the aspect ratio, you can simply run the command:

> _convert input.png -geometry x600 output.png_

And if you’d like to convert all images in a folder to a certain height, change to that directory and use the command:

> _mogrify -geometry x600 *.png_

Need to scale down an image to a specific size? No problem! Just use the command:

> _convert myPhoto.jpg -resize 200x200^_

Looking to crop an image from the center? Easy! Just run the command:

> _convert myPhoto.jpg -gravity Center -crop 200x200+0+0 +repage newPhoto.jpg_

There are even more advanced options available. For instance, if you want to chop a certain portion from multiple images, you can use the command:

> _mogrify -gravity south -chop 0x135 *.jpg_

Additionally, if you need to resize all images in the current directory to a specific width while maintaining the aspect ratio, you can use the command:

> _mogrify -resize 800 *.jpg_

Lastly, if you wish to rotate multiple images by 90 degrees, you can leverage the power of ImageMagick with the command:

> _mogrify -rotate 90 *.jpg_

And that concludes our overview of using ImageMagick and the powerful Mogrify command for batch cropping and image manipulation. I hope you find this guide helpful in streamlining your image editing workflows.

If you’re interested in diving deeper into ImageMagick and exploring its other capabilities, be sure to visit their official website at http://www.imagemagick.org.

That’s it for today’s episode of Continuous Improvement. Thank you for tuning in, and I hope you found this information valuable. If you have any questions or suggestions for future topics, feel free to reach out. Keep striving for continuous improvement, and until next time, happy cropping!