Aswith many things in life, different people have different ideas about what is best. If you ask a landscape photographer who wanders around in the rain in Scotland's mountains which is the best camera in the world, he's going to tell you a light-weight, weather-sealed camera. Ask a studio photographer, and he'll tell you the highest resolution one with the best flash sync speed. And if you ask a sports photographer he'll tell you the one with the fastest autofocus and highest frame rate. So it is with ImageMagick and GraphicsMagick.
I am happy to concede that GraphicsMagick may be faster for some, but not all problems. However, if speed is your most important consideration, I think you should probably be using either libvips, or parallel code on today's multi-core CPUs or heavily SIMD-optimised (or GPU-optimised) libraries like OpenCV.
There is one very clear winner here - ImageMagick. My experience is that there are many features missing from GraphicsMagick which are present in ImageMagick and I list some of these below, in no particular order.
I freely admit I am not as familiar with GraphicsMagick as I am with ImageMagick, but I made my very best effort to find any mention of the features in the most recent GraphicsMagick source code. So, for Canny Edge Detector, I ran the following command on the GM source code:
This is a killer feature of ImageMagick that I frequently sorely miss when having to use GM. IM can load, or create, or clone a whole series of images and apply different processing selectively to specific images and re-sequence, duplicate and re-order them very simply and conveniently. It is hard to convey the incredible flexibility this affords you in a short answer.
Imagine you want to do something fairly simple like load image A and blur it, load image B and make it greyscale and then place the images side-by-side with Image B on the left. That looks like this with ImageMagick:
You can't even get started with GM, it will complain about the parentheses. If you remove them, it will complain about swapping the image order. If you remove that it will apply the greyscale conversion to both images because it doesn't understand parentheses and place imageA on the left.
IM has the -fx operator which allows you to create and experiment with incredibly sophisticated image processing. You can have function evaluated for every single pixel in an image. The function can be as complicated as you like (save it in a file if you want to) and use all mathematical operations, ternary-style if statements, references to pixels even in other images and their brightness or saturation and so on.
This is an invaluable feature present in ImageMagick that allows you to write intermediate processing results to named chunks of memory during processing without the overhead of writing to disk. For example, you can prepare a texture or pattern and then tile it over an image, or prepare a mask and then alter it and apply it later in the same processing without going to disk.
This invaluable feature allows the library to shrink JPEG images as they are read from disk, so that only the necessary coefficients are read, so the I/O is lessened, and the memory consumption is minimised. It can massively improve performance when down-scaling images.
With its -statistic MxN operator, ImageMagick can generate many useful kinds of statistics and effects. For example, you can set each pixel in an image to the gradient (difference between brightest and darkest) of its 5x3 neighbourhood:
ImageMagick supports sequences of images, so if you have a set of very noisy images shot at high ISO, you can load up the entire sequence of images and, for example, take the median or average of all images to reduce noise. See the -evaluate-sequence operator. I do not mean the median in a surrounding neighbourhood in a single image, I mean by finding the median of all images at each pixel position.
The above is not an exhaustive list by any means, they are just the first few things that came to mind when I thought about the differences. I didn't even mention support for HEIC (Apple's format for iPhone images), increasingly common High Dynamic Range formats such as EXR, or any others. In fact, if you compare the file formats supported by the two products (gm convert -list format and magick identify -list format) you will find that IM supports 261 formats and GM supports 192.
imho, i prefer (in fact, only use) graphicsmagick(gm) over imagemagick as the latter has higher chance of tool name clash, which causes lots of issues in finding out why certain tools are not running, especially during server side automation tasks. in summary graphicsmagick has much clearer design.
I found ImageMagick to be incredibly slow for processing TIFF group-4 images (B&W document images), mainly due to the fact that it converts from 1-bit-per-pixel to 8 and back again to do any image manipulation. The GraphicsMagick group overhauled the TIFF format support with their version 1.2, and it is much faster at processing these types of images than the original ImageMagick was. The current GraphicsMagick stable release is at 1.3.5.
I use ImageMagick when speed isn't a factor. However on the server side, where tens of thousands of images are being processed daily, GraphicsMagick is quite noticeably faster - in some cases up to 50% faster in benchmarks!
GraphicsMagick was an early fork from Imagemagick. You can read about Imagemagick's history and the fork to GraphicsMagick at It seems that Imagemagick has continued to be developed rather extensively, while GraphicsMagick has remained more or less stagnant since the fork.
Limit to suite:[buster][buster-updates][buster-backports][bullseye][bullseye-updates][bullseye-backports][bookworm][bookworm-updates][bookworm-backports][trixie][sid][experimental]Limit to a architecture: [alpha] [amd64] [arm] [arm64] [armel] [armhf] [avr32] [hppa] [hurd-i386] [i386] [ia64] [kfreebsd-amd64] [kfreebsd-i386] [m68k] [mips] [mips64el] [mipsel] [powerpc] [powerpcspe] [ppc64] [ppc64el] [riscv64] [s390] [s390x] [sh4] [sparc] [sparc64] [x32] You have searched for packages that names contain imagemagick in all suites, all sections, and all architectures.Found 11 matching packages.
Search in specific suite:[focal][focal-updates][focal-backports][jammy][jammy-updates][jammy-backports][mantic][mantic-updates][mantic-backports][noble][noble-updates][noble-backports][oracular]Limit search to a specific architecture: [i386] [amd64] [powerpc] [arm64] [armhf] [ppc64el] [riscv64] [s390x] You have searched for packages that names contain imagemagick in all suites, all sections, and all architectures.Found 9 matching packages.
Hi, I have been trying to convert images in hybris 6.3.0.2 using ImageMagick and HMC. I keep getting this error."Failed to run imagemagick. Failed to find ImageMagick configuration directory. Please adjust the property: imagemagick.configuration.directory to your local Image Magick installation."
The 6 steps I took were: 1. I Installed ImageMagick-7.0.6-Q16 on my machine and ticked legacy when installing. 2. In my local.properties I added: imagemagick.bindir=C:\Program Files\ImageMagick-7.0.6-Q16 imagemagick.configuration.directory=C:\Program Files\ImageMagick-7.0.6-Q16 3. In my local.extensions I added: 'mediaconversion' and 'hmc. 4. I updated my hybris and ticked media conversion and set Create sample data to true. 5. Created Media in HMC and uploaded a picture and saved. 6. I went to media Containers and added a new container and added my media to that container then clicked Convert missing medias.
En cliquant sur l'image apparue l'cran, vous aurez accs une interface graphique sommaire qui vous permettra tout de mme de nombreuses modifications de l'image ou de son affichage et mme un diaporama du dossier.Utilisez la touche q pour quitter l'application.
Ce dernier traitement par lot est particulirement utile pour corriger en un clin d'oeil des captures d'cran si, par exemple, la numrisation de vos cassettes VHS n'a pas respect les proportions originelles.
Dissolution d'une image dans l'autre. Cette mthode effectue une superposition contrle de la premire image sur la seconde, en ajustant la transparence de la premire sur la seconde. Il est galement possible d'organiser la dissolution progressive de la seconde image (valeurs de transparence de 100 % 200 %). Syntaxe :
La premire image est une image noir et blanc avec canal alpha masqu qui est utilise pour claircir ou assombrir la deuxime image selon un pourcentage (0 : aucun effet, 100 : superposition complte) fix dans la commande.
Utilisation d'un masque pour limiter la superposition d'une image sur une autre. Le masque de composition permet d'utiliser une troisime image qui va limiter la zone affecte par une superposition de la premire image sur la seconde. La taille de l'image finale rsultante sera celle de la seconde image. Les zones transparentes du masque ne seront pas prises en compte, les zones noires "protgeront" la seconde image, les zones blanches seront affectes par l'opration de superposition effectue avec la premire image.
Rend transparents certains pixels de l'image rsultante finale en fonction de la valeur du Fuzz Factor. Utile pour reconstruire la transparence d'une image qui a recouvert un arrire-plan complexe suffisamment diffrent pour que la fonction puisse agir.
Les images JPEG couleur ont souvent de lgres variations de couleur rsultant des pertes lies la compression, le rglage du Fuzz Factor doit tre faible pour cibler les couleurs proches. Il est parfois utile d'inverser les deux images pour reconstruire la transparence partir du "trou" de l'arrire-plan plutt que d'agir sur l'image superpose.
L'option '-geometry' donne la taille de chaque image en pixels qu'il faudra introduire. S'utilise comme suit : -geometry "largeur"x"hauteur". L'option '-tile' donne la disposition des images sur la grande unifie : -tile "colonnes"x"lignes". En pratique :
Cette protection fait suite l't 2018 d'une possibilit trs critique d'lvation de privilge via Ghostscript ( ) qui a mis un temps anormal voire qui n'est toujours pas patch. Les devs de imagemagick ont donc dcid le temps que le patch soit appliqu d'interdire les conversions vers le format PDF (et autres). Il faut diter le fichier /etc/ImageMagick-6/policy.xml :Pour PDF, remplacer la ligne :
3a8082e126