ImageMagick PNG delegate install problems

19,019

Solution 1

You are making things a little too hard for yourself, here is a quick and dirty guide that ran well for me on Trusty Tahr:

First pick up a few known dependencies:

sudo apt-get install build-essential checkinstall \
             libx11-dev libxext-dev zlib1g-dev libpng12-dev \
             libjpeg-dev libfreetype6-dev libxml2-dev

This does not quite catch everything so activate the Source repositories by clicking on 'Souce Code' here:

Dash >> Software & Updates >> Source Code

and then running the following:

sudo apt-get build-dep imagemagick

Create a build folder and change to it:

mkdir $HOME/imagemagick_build && cd $HOME/imagemagick_build

And finally download, extract, compile and install by simply copying and pasting the entire code box below into a Terminal window:

wget https://www.imagemagick.org/download/ImageMagick-7.0.8-28.tar.bz2 && \
tar xvf ImageMagick-7.0.8-28.tar.bz2 && cd ImageMagick-7.0.8-28 && ./configure && make && \
sudo checkinstall -D --install=yes --fstrans=no --pakdir "$HOME/imagemagick_build" \
     --pkgname imagemagick --backup=no --deldoc=yes --deldesc=yes --delspec=yes --default \
     --pkgversion "7.0.8-28" && \
make distclean && sudo ldconfig

And finally test this, looking especially for the png you are missing in your own install:

andrew@corinth:~$ identify -version
Version: ImageMagick 7.0.5-10 Q16 x86_64 2017-06-05 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2017 ImageMagick Studio LLC
License: http://www.imagemagick.org/script/license.php
Features: Cipher DPC OpenMP 
Delegates (built-in): bzlib djvu fftw fontconfig freetype jbig jng jpeg lcms lqr lzma openexr pangocairo png tiff wmf x xml zlib
andrew@corinth:~$ 

And there is the png option you were missing :).

Solution 2

I installed ImageMagick7.0.11 as well as ImageMagick7.1.0 by extracting it's tar.gz files. But it did not work. Finally I had to install it using the rpm only. The 'dnf' command does the trick for you. If apt-get is not working, then 'dnf' might be the right solution for your RHEL/CentOS 8. Check this link for reference - https://unix.stackexchange.com/questions/555466/how-to-install-apt-get-and-dpkg

Now, when I hit the magick -version or convert -

version command, I can see this output which is correct: Version:

ImageMagick 7.0.11-13 Q16 x86_64 2021-05-17 https://imagemagick.org Copyright: (C) 1999-2021 ImageMagick Studio LLC License: https://imagemagick.org/script/license.php Features: Cipher DPC HDRI Modules OpenMP(4.5) Delegates (built-in): bzlib cairo djvu fontconfig freetype gslib jng jp2 jpeg lcms ltdl lzma openexr pangocairo png ps raqm raw rsvg tiff webp wmf x xml zlib

Initially, for me too, this 'Delegates(build-in)' section was coming blank, when I kept trying hard using yum command.

Share:
19,019

Related videos on Youtube

gvanto
Author by

gvanto

Web developer

Updated on September 18, 2022

Comments

  • gvanto
    gvanto almost 2 years

    Ubuntu 14.04:

    I've downloaded the latest imagemagick source and installed, using option below to configure:

    root@usve59445:~/im/ImageMagick-6.9.3-7# ./configure --enable-shared --with-png=yes
    

    After installation however, I have zero items in my built-in list of delegates:

    root@usve59445:~/im/ImageMagick-6.9.3-7# identify -version
    Version: ImageMagick 6.9.3-7 Q16 x86_64 2016-03-14
    Copyright: Copyright (C) 1999-2016 ImageMagick Studio LLC License:  
    Features: Cipher DPC OpenMP
    Delegates (built-in):
    

    Issue I am getting is 'no delegate for format PNG found' when doing a convert command.

    I installed the libpng delegate from: http://www.imagemagick.org/download/delegates/

    Extracted the libpng1621.tar.gz into its own folder, then: Ran configure, make, make install (no error messages)

    Now when I try and recompile imagemagick, it still says ' Checking for PNG ... no' and --with-png value has 'no' (even though I configure it with --with-png=yes ).

    Not sure what I am doing wrong?

    Trying to recompile IM using:

    root@usve59445:~/im/ImageMagick-6.9.3-7# ./configure --enable-shared=yes --with-png=yes LDFLAGS='-L/usr/local/lib' LIBS=-lpng16

    (I think I am using the correct LDFLAGS, but not sure)

    root@usve59445:~/im/libpng-1.6.21# libpng16-config --L_opts
    -L/usr/local/lib 
    
    root@usve59445:~/im/libpng-1.6.21# libpng16-config --libs
    -lpng16
    
    
    root@usve59445:~/im/libpng-1.6.21# locate libpng
    /lib/x86_64-linux-gnu/libpng12.so.0
    /lib/x86_64-linux-gnu/libpng12.so.0.46.0
    /usr/bin/libpng-config
    /usr/bin/libpng12-config
    /usr/include/libpng
    /usr/include/libpng12
    /usr/include/libpng12/png.h
    /usr/include/libpng12/pngconf.h
    /usr/lib/x86_64-linux-gnu/libpng.a
    /usr/lib/x86_64-linux-gnu/libpng.so
    /usr/lib/x86_64-linux-gnu/libpng.so.3
    /usr/lib/x86_64-linux-gnu/libpng12.a
    /usr/lib/x86_64-linux-gnu/libpng12.so
    /usr/lib/x86_64-linux-gnu/libpng12.so.0
    /usr/lib/x86_64-linux-gnu/pkgconfig/libpng.pc
    /usr/lib/x86_64-linux-gnu/pkgconfig/libpng12.pc
    /usr/local/bin/libpng-config
    /usr/local/bin/libpng16-config
    /usr/local/include/libpng16
    /usr/local/include/libpng16/png.h
    /usr/local/include/libpng16/pngconf.h
    /usr/local/include/libpng16/pnglibconf.h
    /usr/local/lib/libpng.a
    /usr/local/lib/libpng.la
    /usr/local/lib/libpng.so
    /usr/local/lib/libpng16.a
    /usr/local/lib/libpng16.la
    /usr/local/lib/libpng16.so
    /usr/local/lib/libpng16.so.16
    /usr/local/lib/libpng16.so.16.21.0
    /usr/local/lib/pkgconfig/libpng.pc
    /usr/local/lib/pkgconfig/libpng16.pc
    /usr/local/share/man/man3/libpng.3
    /usr/local/share/man/man3/libpngpf.3
    /usr/share/doc/libpng12-0
    /usr/share/doc/libpng12-dev
    /usr/share/doc/libpng3
    /usr/share/doc/libpng12-0/ANNOUNCE
    /usr/share/doc/libpng12-0/KNOWNBUG
    /usr/share/doc/libpng12-0/README.Debian
    /usr/share/doc/libpng12-0/README.gz
    /usr/share/doc/libpng12-0/TODO
    /usr/share/doc/libpng12-0/changelog.Debian.gz
    /usr/share/doc/libpng12-0/copyright
    /usr/share/doc/libpng12-0/libpng-1.2.46.txt.gz
    /usr/share/doc/libpng12-dev/changelog.Debian.gz
    /usr/share/doc/libpng12-dev/copyright
    /usr/share/doc/libpng12-dev/examples
    /usr/share/doc/libpng12-dev/examples/example.c.gz
    /usr/share/doc/libpng12-dev/examples/pngtest.c.gz
    /usr/share/doc/libpng12-dev/examples/pngtest.png
    /usr/share/doc-base/libpng12
    /usr/share/man/man1/libpng-config.1.gz
    /usr/share/man/man1/libpng12-config.1.gz
    /usr/share/man/man3/libpng.3.gz
    /var/cache/apt/archives/libpng12-0_1.2.46-3ubuntu4.2_amd64.deb
    /var/cache/apt/archives/libpng12-dev_1.2.46-3ubuntu4.2_amd64.deb
    /var/cache/apt/archives/libpng3_1.2.46-3ubuntu4.2_amd64.deb
    /var/lib/dpkg/info/libpng12-0:amd64.list
    /var/lib/dpkg/info/libpng12-0:amd64.md5sums
    /var/lib/dpkg/info/libpng12-0:amd64.postinst
    /var/lib/dpkg/info/libpng12-0:amd64.postrm
    /var/lib/dpkg/info/libpng12-0:amd64.shlibs
    /var/lib/dpkg/info/libpng12-dev.list
    /var/lib/dpkg/info/libpng12-dev.md5sums
    /var/lib/dpkg/info/libpng3:amd64.list
    
    • gvanto
      gvanto over 8 years
      Installed libpng via this also: apt-get install libpng12-0 - Still getting same checking PNG ... no (no delegate found). Installed libjpeg62 via apt-get, did a recompile of IM and it appears successfully in the delegates list - just PNG does not work!!
    • muru
      muru over 8 years
      You have to install the -dev packages (libpng12-dev, perhaps), for building software with a library.
    • gvanto
      gvanto over 8 years
      Hi muru, thanks already did that, not working. Trying to use the --x-libraries option like this guy did: stackoverflow.com/questions/28237800/… But 'locate libpng' gives me a lot of different locations (added to question above), not sure which one I should use? (have tried a few, none of which seem to get PNG compiled into IM).
    • gvanto
      gvanto over 8 years
      Spent many hours on this now with no luck. Willing to send a paypal of $50 for anyone with a (working) advice
  • gvanto
    gvanto over 8 years
    This works, thanks so much andrew.46!!!! What is your paypal email? (can send via private IM if possible)
  • andrew.46
    andrew.46 over 8 years
    Great to hear that it all works! I do not want money, I prefer to do this as an Open Source thing but thanks for the thought :).
  • Scott Jungwirth
    Scott Jungwirth over 6 years
    after hours of other "answers" this one finally worked for me. I think the critical part for me was the known dependencies and sudo apt-get build-dep imagemagick. Thanks!
  • andrew.46
    andrew.46 over 6 years
    @ScottJungwirth Great news! I have not tested thins answer for a while but I see a small stream of editors have been bumping the version :)
  • RBV
    RBV about 6 years
    Thanks -- this mostly worked. Still some errors reported on Linux Mint 32-bit. So I performed the && chained commands on single lines. It seems insane to me how difficult it was/is to get imagemagick in a state where it can do a bit of useful work...
  • kim holder
    kim holder about 6 years
    This solution on 18.04 now only helps with a few things. Which is still significant, because i too have been struggling with this all day. The package is now 7.0.7-37, and the code was adjusted accordingly. Checkinstall now fails. The Delegates list for me after doing this reads - mpeg freetype jng jpeg png ps xml zlib. The thing i really need is missing - tif. Just an update.
  • andrew.46
    andrew.46 about 6 years
    @kimholder I am wary of adjusting this answer for 18.04 as the original question dealth with 14.04 = a long time ago!
  • kim holder
    kim holder about 6 years
    Sure, that's fair enough. I am focussing now on trying to install the delegate packages offered by ImageMagick. I am looking at the currently empty folder usr/local/lib/ImageMagick-7.0.7/config-Q16HDRI and wondering if they should be installed there.
  • kim holder
    kim holder about 6 years
    You maybe would have input on my related question, askubuntu.com/q/1042436/364597
  • Michael
    Michael almost 6 years
    Is there anyway to uninstall the insane amount of packages that 'build-dep' installed once you compiled imagemagick? Do I just need the binaries for it to work?
  • andrew.46
    andrew.46 almost 6 years
    @Michael Probably best not to try and weed out too much as for sure there will be some breakage :(. However if you are keen have a look at ldd for the various executables that come with imagemagick. Sounds like too much hard work to me though....
  • Michael
    Michael almost 6 years
    @andrew.46 - Thanks and I agree. Also, I'm worried about security issues with so many packages being installed. I'm looking into dropping ImageMagick, maybe ubuntu has a safer more compatible library for 14.04, or maybe just resizing png's in php itself.
  • Clonkex
    Clonkex over 4 years
    As an outsider and primarily a Windows user, this seems exceedingly overcomplicated. Why does IM not simply handle this stuff on its own? Why do I have to go to such great lengths just to get basic PNG support? Sigh. This is why I don't use Linux except for dev work...
  • Admin
    Admin almost 2 years
    Note that mixing and matching package managers (dpkg/apt versus dnf/yum in your proposed case) is rarely a good idea, because, although installed packages might work, they can have dependencies — and each system will handle them differently (and not know about the other system's dependencies). At best, you get a few broken packages here and there while 'trying hard using yum'; at worst, you might actually replace mission-critical components (such as libc) which can totally brick your system. Tread carefully! Installing from .deb packages is always a better idea...