ImageMagick is a suite of tools for manipulating images on the fly. Many hosting companies do not install or allow ImageMagick – so if it is important to your project, be sure to read on to find out more and compare hosts that offer it.
A Brief History of ImageMagick
In 1987, John Cristy was tasked with finding an algorithm to reduce the number of colors in an image file.
At the time, this was not a common task, and Cristy scoured newsgroups to find the script he needed.
As part of his role at DuPont, he was tasked with a number of similar queries over the next decade, and wound up sourcing and adapting fragments of code.
The Release of ImageMagick
In 1990, he decided to release the tools he’d found, adapted, and developed.
These were compiled and released as a free package called ImageMagick, with DuPont’s blessing.
Despite most of the work being done on DuPont’s time, DuPont essentially gave away ImageMagick by giving Cristy the copyright.
He suspected that the business did not see any value in it as a commercial product.
Cristy continued to develop ImageMagick as it gained a solid reputation.
The various tools were bundled and incorporated into the Linux operating system, and they were also adopted by thousands of programmers as their imaging editing toolbox of choice.
ImageMagick is now an established and, some might say, essential part of most dynamic websites.
ImageMagick is essentially an imaging editing program; a collection of tools for processing and manipulating graphics files. It has four main functions:
Displays raster and vector images in more than 200 formats
Converts images from one format to another (including common formats like GIF, JPG, TIFF and PNG)
Extracts information about images.
ImageMagick is known for being installed on Linux web servers, but it’s written in C and is fully cross-platform compatible, working well on Windows, Android, Solaris, and iOS. Its functionality is similar to popular desktop software for image editing, but it looks quite different.
On Linux, it is a command line application; a basic graphical user interface is included, but it’s nowhere near as sophisticated as the desktop imaging editing programs you have likeley used on your laptop.
ImageMagick also has its own application programming interfaces (APIs), but not all hosts install these.
You can execute ImageMagick commands by using PHP’s exec function instead. By coding the commands, you can essentially manipulate images in an application automatically, without the need for the user to get involved.
Because it can use either the command line or an API, ImageMagick is equally suited for many situations:
Functionality within an application
An experienced user can make it perform complex operations on a set of images in a single script.
The basic operation of ImageMagick is to convert an input file to an output file, possibly in a different format, or to get information on one file.
The command can use many options, and these are just a small sample:
Extract image information
Add a caption
Rotate any number of degrees
Crop the image
Change the image dimensions
Tile the image
Add a border
Set gamma correction
Versions of ImageMagick
Version 7 made sweeping changes to the user interface to be more easily scripted.
The magick-script command accepts a command file in the scripting language.
The output messages aren’t really designed for machine processing, though; they’re plain text rather than a structured format.
Parsing them in a script is a bit tricky.
What Does ImageMagick Do?
ImageMagick tries to validate the files it processes, but that’s not its main purpose. It may show unexpected behavior when it gets a defective image file.
A site that accepts file uploads from outside users should always handle them carefully.
Features of ImageMagick
Most of us have uploaded photographs or avatars to web servers.
This is common when creating a profile on forums, social networks, and content management systems.
ImageMagick can automatically resize the uploaded image to fit the predefined requirements of the system.
This is one of its most basic uses on the web.
ImageMagick can also:
Dither an image
Add text to an image (such as a caption)
Reduce the number of colors in a picture (perhaps to reduce file size or create an effect)
Change the tone of a picture (e.g. from normal to sepia)
Convert from one format to another
Rescale an image
Draw lines and shapes
Crop and rotate
Flip images horizontally or vertically
Overlay images on top of each other
Create animated GIFs from single GIFs
Process massive images, such as RAW files
Apply artistic effects to an image
Its versatility and efficiency have made it a prerequisite for many scripts that need image processing capabilities.
For example, if you install Drupal, you’ll need ImageMagick support in order to use its thumbnail creation feature.
ImageMagick vs GraphicsMagick
As you research ImageMagick hosting, you might come across GraphicsMagick.
GraphicsMagick is a program that separated from ImageMagick in 2002.
Older versions of ImageMagick consisted of a suite of command-line tools, but the current version puts everything under one command, bringing it more in line with GraphicsMagick.
Some users claim that GraphicsMagick is more stable since its releases are more controlled and backward compatibility is maintained.
Why Choose ImageMagick Over GraphicsMagick?
Some developers have switched to GraphicsMagick because it’s faster and more efficient; others say that it depends which formats you’re working with.
Many applications actually use both ImageMagick and GraphicsMagick so they have the best of both worlds.
If graphics editing is a critical part of your site, having this versatility will be a real bonus.
Pros and Cons of ImageMagick
Like any software, there are both pros and cons to using ImageMagick as your image editor of choice.
Below, we outline a few of the most common pros and cons.
Pros of ImageMagick
Highly versatile image management
Can be used by command line or API
Free, open source
Updates are stable
Updates are backward compatible
Cons of ImageMagick
Major changes in user interface between versions
Mastering it requires some effort
Not intuitive to use; knowledge from other popular software does not translate over
Only offers a basic graphical user interface
ImageMagick Hosting Features to Look For
Many hosting sites install ImageMagick as standard software or let you install it with cPanel.
If you have a VPS or dedicated server and understand the command line, downloading and installing ImageMagick isn’t difficult.
Be sure to check what version you’re getting, as the interface has changed significantly.
Running it on a lot of files can be resource-intensive, so be sure to get a plan that provides enough processing power.
Top 3 Hosts for ImageMagick
As mentioned above, most hosts offer ImageMagick as standard downloads, but a few hosts stand out.
The following are my top three choices for ImageMagick hosts.
SiteGround makes ImageMagick available on its shared hosting plans and keeps it up to date.
The PHP ImageMagick extension can be enabled from cPanel or by editing php.ini. It can be requested on cloud and dedicated servers.
Customers can choose from multiple PHP versions. Support is there 24 hours a day by phone, chat or ticket, and responds quickly.
Bluehost puts ImageMagick and its PHP extension on all its Linux servers. You can also use ImageMagick from Ruby on Rails.
SSH and FTP access are included, of course. The cPanel control panel is provided on shared, VPS, and dedicated servers and cloud servers have a customer control panel.
Chat, ticket, and phone support are up around the clock.
InMotion Hosting installs ImageMagick, but not its APIs, on all its hosting servers by default, but the documentation suggests it has an older version.
SSH access is available, and SSD storage is standard and can be a big help in heavy file processing. Support is available 24/7 and includes onboarding assistance.
Other features in
ImageMagick Frequently Asked Questions
What is ImageMagick?
ImageMagick is a software application that allows images to be edited on the fly. It must be used from the command line as it does not have a graphical user interface.
Why use ImageMagick instead of Photoshop or gimp?
ImageMagick is designed to process images from a script, or dynamically process the same operations to several images. It’s very useful if you need to repeat a specific operation at different times, perhaps from a script on your server. It is not designed for one-off image editing.
How do I install ImageMagick?
If you’re running a Unix-based system or server, ImageMagick may already be installed. If not, you can install ImageMagick using either an executable file, which is available for Windows and some Unix systems, or by compiling the source code.
What type of commands can I send to ImageMagick?
ImageMagick can set a font style, add shading, scale images, resize and rotate images, blur parts of the image, and more. You can find a complete list of command options and specific coding requirements on the ImageMagick website.
What programming languages support ImageMagick?
There are ready-made ImageMagick interfaces available for a number of programming languages, including Ada, C++, Java, .NET, PHP, Python, Ruby, XML-PRC, and more. You can find many of these interfaces available on the ImageMagick website.
How much does ImageMagick cost?
ImageMagick is free to download and use. It is distributed under the Apache 2.0 Open Source License.
Is there support available for ImageMagick?
The ImageMagick website offers user documentation and community forums.
How can ImageMagick improve the performance of my WordPress site?
You can replace the standard GD image library with ImageMagick. This will improve the quality of resized images, preserve embedded color profiles, automatically recognize custom image sizes, optimize different image sizes for either quality or size, and more.
In order to install ImageMagick on your WordPress site, you will need full access to your server. Once your server is ready, you can download the ImageMagick files to your WordPress directory and activate the plugin through your control panel.
How does GraphicsMagick differ from ImageMagick?
GraphicsMagick is a fork of ImageMagick. It works to maintain pre-existing functionality, even as it adds new features, which has resulted in some incompatibilities with code written for older versions.
GraphicsMagick is a smaller installation, and has fewer dependencies on external libraries. Some developers believe GraphicsMagick is more stable, faster, and better at dealing with larger files than ImageMagick, but there is some debate about this.
About Gary McGath
Gary McGath spent years as a software developer before turning to writing. In addition to writing many articles on technology, he's the author of two crowdfunded e-books. His tech passions include data security and digital preservation.
Connect with Gary
Who's Best for ImageMagick Hosting?
We recommend SiteGround for ImageMagick-enabled hosting.