How to use ImageMagick

Using ImageMagick

Convert Mogrify Aspect Ratio

ImageMagick is a software suite that can be used to manipulate images. In order to use it with InMotion Hosting web hosting servers, you would need to use code such as PHP or execute a command in SSH. The following article will describe how to find and use ImageMagick commands to resize an image and give you some brief examples. We will also provide links for more comprehensive information on the many functions available through ImageMagick.

How is ImageMagick accessed?

By default, ImageMagick is installed on InMotion Hosting servers. However, it can only be accessed through the command line, a cron job or PHP code on a web page. The path for the command line options would look like this:

  • /usr/bin/convert
  • /usr/bin/mogrify

ImageMagick has many modules that can be loaded, but for the purposes of InMotion’s hosting servers, the main commands available are Convert and Mogrify. These commands can be used through PHP using a native extension called Imagick. For more information, please see the Imagick class in the PHP documentation.

Using ImageMagick

ImageMagick can be used through SSH and PHP. The following examples are executed in SSH to resize images like the ones below. Each example uses the convert command. By default, the convert command maintains the aspect ratio of the image by.

Using Convert

When you use the commands below, the apect ratio of the image is not changed. This means that if you convert an image that is originally 320×220 pixels to 64 x 64 pixels (as per the examples below), the actual size will be 64 x 44 pixels, because it shrinks to the smallest dimension while maintaining the aspect ratio. For more information, please see aspect ratio below.

VPS and Dedicated servers with SSH access

convert larger-image.png -resize 64×64 smaller-image.png

Cron job command for shared servers with no SSH access

/usr/bin/convert public_html/larger-image.png -resize 64×64 public_html/smaller-image.png

PHP command for shared servers with no SSH access

exec(‘/usr/bin/convert /home/USERNAME/public_html/larger-image.png -resize 64×64 /home/USERNAME/public_html/smaller_image.jpg’);

You will need to replace USERNAME with the actual username of the account. You will also need to make sure that the folder where the converted image is being saved has the proper write permissions.

Using Mogrify

The mogrify command can be used in place of convert to resize an image with the main difference being that it modifies the original file. For more documentation on using mogrify, please go here. Like convert, the mogrify command maintains the aspect ratio of the image by default.

VPS and Dedicated servers with SSH access

mogrify -resize 64×64 original-image.png

Cron job for shared servers with no SSH access

/usr/bin/mogrify -resize 64×64 public_html/orignal-image.png

PHP script command for shared servers with no SSH access

exec(‘/usr/bin/mogrify -resize 64×64’ /home/USERNAME/public_html/original-image.png );

You will need to replace USERNAME with the actual username of the account. You will also need to make sure that the folder where the converted image is being saved has the proper write permissions.

Understanding Image Aspect Ratio

Using convert or mogrify commands that are listed above will change the size of the image while automatically maintaining the aspect ratio of the image. The simplest way to understand this concept is to imagine taking an image and shrinking it down without causing any distortion of the image. The commands above use a square image of 64 x 64 pixels. If it were to shrunk to 32 x 32 pixels, it will maintain its aspect ratio and not show any distortion because the image remains square. However, if it were to be shrunk to 32 x 20 pixels, then the image is no longer square and the aspect ratio would be different causing distortion. Here’s an example using the picture of a cat:

Original Image Aspect ratio maintained Aspect ratio changed
Original Cat Image Aspect ratio maintained Aspect ratio changed

You can see the differences in the images of the cat above. If you wish to force a change in aspect ratio, then the main difference in the command will be to add an “!” after the declared size for the image. Here’s an example:

convert original-image.png -resize 64×64/! smaller-image.png
mogrify -resize 64×64/! original-image.png

Further info on ImageMagick

ImageMagick is a complex suite of tools that you can use to create and modify images in many formats. The information that we have provided here is merely a snapshot of its vast capabilities. The options available on InMotion’s shared server accounts primarily involve the convert and mogrify commands, but there are many other modules and processing options that you can load if you are using ImageMagick on a VPS or dedicated server account.

When you are using ImageMagick remember that the commands you use may possibly process a large number of images. This can severely affect the resources of your server. For more information on resource issues, please see Excessive CPU Processing. If you must process in large numbers, do them in several groups and during off-peak hours. Contact InMotion Hosting’s technical support team if you require further information. For further information see the website for further tutorials and much more documentation.

Thoughts on “How to use ImageMagick

  • Hello, 

    I’m having serious trouble with ImageMagick on InMotion hosting, since a month. I have stripped my code up to a imple demo script:


    $jpg   = “005.jpg”;


    $thumb = “005-thumb” . microtime(true). “.jpg”;

    $cmd = ‘/usr/bin/convert  -resize 300×150^ “‘ . $jpg . ‘”  “‘ . $thumb . ‘”‘;

    echo “CMD run: <pre>” . $cmd . “</pre>”;


    echo “<p>Thumbnail created?: <strong>” . (file_exists($thumb) ? “yes” : “no”) . ‘</strong></p>‘;

    echo ‘<p>Total time: ‘ . (microtime(1) – $start) . ‘ms</p>‘;



    I have tried both with absolute file paths and relative (as above); the final result does not change.

    The script takes ages to complete (up to 10-15s) and most of the times it fails. I’ve been chatting with the InMotion support for hours without results. It seems not to be an Apache error or permision issuesor other server related problems. The scripts causes s resuorce limit and then fails. Running the same script from the commnd line works as expected. Running the script in other hosting companies works as expected.

    The support team ended saying that, since it works at least once in 10-15 tries, then it’s not a server issue, but a script problem.

    Removing the ^ operator from the covert command, seemg t get better, but far from 100% performance.

    Is ImageMagick still supported on InMotion shared hosting and in what extent?

    • As you may have noticed using image processing software like Photoshop or Illustrator, resizing images requires a lot of computing power, and image sizes and resolutions can vary. You may want to consider upgrading to a VPS/Dedicated hosting plan.

  • I am new to programming, so this might be a simple fix. 

    I am getting this error:

    Fatal error: Class ‘Imagick’ not found in /home/intera37/public_html/imageMagickTest/upload.php on line 15

    I am simply importing a jpg from my desktop and using Imagick to create a thumbnail. 

    Do I need to import Imagick class inside my php file? What am I doing wrong?




    This is my html:

    <!DOCTYPE html>



    <form action=”upload.php” method=”post” enctype=”multipart/form-data”>

     <label for=”file”>Image:</label>

     <input type=”file” name=”file” id=”file”><br>

     <input type=”submit” name=”submit” value=”Upload and Crop”>





    // THIS IS MY PHP upload.php




    if (isset($_FILES[“file”])) {

        $tmpFile = $_FILES[“file”][“name”];

        $fileName = “renamedfile_01.jpg”; 


            $image = new Imagick($tmpFile); // THIS IS WHERE IT BREAKS (LINE 15)

            $image->thumbnailImage(100, 100);



        echo $fileName;



    • Hello Destrada,

      As per the article above, the COMMAND is NOT “Imagick”. It’s either mogrify or convert. The imagick command does not exist on the server. Change your code and review the article for further information.

      Arnel C.

  • I’m having a problem using the convert method from the exec function in php.  I can resample one jpg image, but a similar image in the same directory with the same permissions won’t convert.  Is this a thing?


    thanks 🙂

    • Hello Dale,

      Sorry you’re having problems with the command. Not sure what’s happening, but have you tried ANOTHER file other than the ones you’ve had trouble with? I checked the command and it’s definitely okay. Also, if you could provide us the exact domain where you’re trying to get this to work, we would be happy to review this for you.

      Arnel C.

Leave a Reply