ImageMagick installing and exploring it, a good alternative for the GD library

Although PHP GD library handles basic image operations quite good, you have probably run into the limitations of GD library as well, it is often slow, memory intensive and a bit complicated to use for advanced image effects. ImageMagick however is a very good alternative. It is an opensource software suite licensed under a BSD style license from IM itself. ImageMagick provides in all functionality that can be accomplished with the GD library but even goes a step further with support for more advanced image edit techniques. An example of such a technique is the recently added “liquid scaling” feature, this is a content aware scaling option.

Click the image below to see an example of liquid scaling:
Liquid Scaling with imagemagick

So how do I get such a result? Well with PHP GD library it would take a whole lot of code, thinking and beers to get a script that does the same without exceeding your memory_limit, with ImageMagick however it is just one simple command.

exec("convert inputimage.jpg  -liquid-rescale 250x500%\!  outputimage.jpg");

The nice thing about ImageMagick is that you can often accomplish very sophisticated image effects with just one command, you can also chain commands. Now although IM has a quite good documentation guide available you maybe just want to be able to perform basic image operations with IM without seeking your way trough the documentation all the time. Their are some PHP classes available that will make your life easier.

My personal favor is PhMagick or a home brew script, why? Well I like the idea of wrapper classes more, my code is somewhat more portable because I don’t have to install the IM extension on a server and another PHP extension to communicate with it, furthermore I think that using wrapper classes gives you more insight in IM itself, you will better understand what is going on, on the other hand you probably will spend some hours to figure out why the command is not doing what you expected it to do because you are missing a simple ! or ^ parameter option.

Personal experience on installing IM on the server
Some time ago I wanted to install IM on my new dev and live server, the dev server is running OSX and the live server is running a Fedora distribution. So the first step before I tried to install IM was to read the documentation (yeah I’m one of those guys that also actually reads the readme files and documentation 😉 of products). I followed the “Install from source” tutorial. So I started with the live server, after downloading and unpacking IM I ran the ./configure command immediately I was faced with the error “no acceptable c compiler found in $PATH”, now my Linux skills are far from topnotch, so after some googling I found out that the easiest way to fix this issue was to install GCC (GNU Compiler Collection) that already included a C compiler. After installing GCC and running the ./configure command everything went fine, IM was installed successfully. I wanted to test if it was working correctly so I tried to resize several images but again an error occurred “convert: no decode delegate for this image format”, okay perhaps I should read the documentation more carefully next time because before installing IM you should also install the image libraries that you will use. In my case this was “yum install libjpeg libjpeg-devel libpng libpng-devel libtiff libtiff-devel”, now again I needed to install IM again, not much work, but still something to remember when installing IM. On the dev OSX server installing ImageMagick was quite simple, I used a precompiled dmg and only needed to install the Apple XCode developer tools.

So to summarize:

Advantages of using ImageMagick:

  • it uses less resources, forget about the memory_limit issues with PHP when using GD and large images
  • it’s slighty faster (note: depending on the filetype and image size GD beats IM in speed when it comes to resizing
  • Image Magick has support for more filetypes
  • as I showed before, it is very simple to use
    exec('convert "'.$sSourcePath.'" -resize '.$iWidth.'x"'.$sDestinationPath.'"');
  • Some very nice features like liquid scaling or seam carving

Disadvantages of using Image Magick:

  • you need to have full access to your server, it isn’t bundled with PHP
  • compiling IM can give some trouble, you shouldn’t forget to get the image libraries you want to use

Useful links

Comments

3,797 responses to “ImageMagick installing and exploring it, a good alternative for the GD library”

  1. ArthurLap Avatar
    ArthurLap

    recommended canadian pharmacies: best canadian online pharmacy – canadian pharmacy reviews

  2. Michaelves Avatar
    Michaelves

    best canadian pharmacy: canadian pharmacy no scripts – reputable canadian online pharmacy

  3. AndrewHoozy Avatar
    AndrewHoozy

    trustworthy canadian pharmacy: NorthAccess Rx – canadian pharmacy 365

  4. Michaelves Avatar
    Michaelves

    canadianpharmacymeds: NorthAccess Rx – canadian pharmacy near me

  5. WilliamSip Avatar
    WilliamSip
  6. AndrewHoozy Avatar
    AndrewHoozy

    global pharmacy canada: canadian pharmacy no scripts – canadian pharmacy online store

  7. ArthurLap Avatar
    ArthurLap

    reputable indian online pharmacy: world pharmacy india – buy prescription drugs from india

  8. Michaelves Avatar
    Michaelves

    Global India Pharmacy: Global India Pharmacy – Global India Pharmacy

  9. AndrewHoozy Avatar
    AndrewHoozy

    online pharmacy india: Global India Pharmacy – Global India Pharmacy

  10. ArthurLap Avatar
    ArthurLap

    Paw Trust Meds: online pet pharmacy – Paw Trust Meds

  11. Michaelves Avatar
    Michaelves

    Paw Trust Meds: dog prescriptions online – Paw Trust Meds

  12. AndrewHoozy Avatar
    AndrewHoozy

    online vet pharmacy: Paw Trust Meds – Paw Trust Meds

  13. Gabrielnes Avatar
    Gabrielnes

    https://northaccessrx.com/otc-meds.html# canadian pharmacy phone number

  14. WilliamSip Avatar
    WilliamSip

    http://globalindiapharmacy.com/# Global India Pharmacy

  15. 创建个人账户 Avatar

    I don’t think the title of your article matches the content lol. Just kidding, mainly because I had some doubts after reading the article. https://www.binance.com/es/register?ref=RQUR4BEO

  16. Michaelves Avatar
    Michaelves

    Global India Pharmacy: mail order pharmacy india – online pharmacy india

  17. AndrewHoozy Avatar
    AndrewHoozy

    canadian pharmacy: canada pharmacy – canada discount pharmacy

  18. Russellicece Avatar
    Russellicece

    https://civicmeds.com/# legitimate canadian pharmacy

  19. Timothyred Avatar
    Timothyred

    CoreBlue Health: CoreBlue Health – Viagra tablet online

  20. JustinBrero Avatar
    JustinBrero

    international pharmacy no prescription: CivicMeds – canada drugstore pharmacy rx

  21. Timothyred Avatar
    Timothyred

    reliable rx pharmacy: pharmacy shop – safe canadian pharmacy

  22. LamarAwaiz Avatar
    LamarAwaiz

    VeritasCare п»їcialis generic Cialis over the counter

  23. JamesMek Avatar
    JamesMek

    http://civicmeds.com/# canadian pharmacy 365

  24. JustinBrero Avatar
    JustinBrero

    VeritasCare: buy cialis pill – Cialis 20mg price

  25. LamarAwaiz Avatar
    LamarAwaiz

    sildenafil online CoreBlue Health CoreBlue Health

  26. Timothyred Avatar
    Timothyred

    Viagra without a doctor prescription Canada: order viagra – Sildenafil Citrate Tablets 100mg

  27. JustinBrero Avatar
    JustinBrero

    canadian pharmacy generic levitra: onlinecanadianpharmacy – no prescription required pharmacy

  28. LamarAwaiz Avatar
    LamarAwaiz

    cheapest cialis VeritasCare VeritasCare

  29. Timothyred Avatar
    Timothyred

    canadian pharmacy sildenafil: india pharmacy mail order – family pharmacy

  30. JustinBrero Avatar
    JustinBrero

    VeritasCare: VeritasCare – VeritasCare

  31. JamesMek Avatar
    JamesMek

    https://civicmeds.shop/# canadian pharmacy prices

  32. Timothyred Avatar
    Timothyred

    CoreBlue Health: generic sildenafil – CoreBlue Health

  33. JustinBrero Avatar
    JustinBrero

    overseas online pharmacy: CivicMeds – discount pharmacy online

  34. stickers drukken Avatar

    I will right away grab your rss as I can’t to find your e-mail subscription hyperlink or e-newsletter service. Do you’ve any? Kindly let me recognize in order that I could subscribe. Thanks.

  35. Russellicece Avatar
    Russellicece

    https://civicmeds.com/# canadian pharmacy 365

  36. LamarAwaiz Avatar
    LamarAwaiz

    capsule online pharmacy reputable indian pharmacies gold pharmacy online

  37. Timothyred Avatar
    Timothyred

    cheap viagra: CoreBlue Health – CoreBlue Health

  38. JustinBrero Avatar
    JustinBrero

    Viagra online price: CoreBlue Health – CoreBlue Health

  39. LamarAwaiz Avatar
    LamarAwaiz

    CoreBlue Health Cheap Viagra 100mg order viagra

  40. Timothyred Avatar
    Timothyred

    pharmacy in canada: CivicMeds – viagra from canadian pharmacy

  41. Russellicece Avatar
    Russellicece
  42. JamesMek Avatar
    JamesMek

    https://civicmeds.shop/# rate online pharmacies

  43. JustinBrero Avatar
    JustinBrero

    Sildenafil 100mg price: CoreBlue Health – CoreBlue Health

  44. LamarAwaiz Avatar
    LamarAwaiz

    Viagra tablet online cheapest viagra CoreBlue Health

  45. Timothyred Avatar
    Timothyred

    online pharmacy discount code: online pharmacy store – safe canadian pharmacies

Leave a Reply

Your email address will not be published. Required fields are marked *