13

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
4
  • 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!!
    – gvanto
    Mar 14, 2016 at 4:55
  • You have to install the -dev packages (libpng12-dev, perhaps), for building software with a library.
    – muru
    Mar 14, 2016 at 6:10
  • 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
    Mar 14, 2016 at 23:38
  • Spent many hours on this now with no luck. Willing to send a paypal of $50 for anyone with a (working) advice
    – gvanto
    Mar 15, 2016 at 3:57

3 Answers 3

21

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 :).

13
  • 1
    This works, thanks so much andrew.46!!!! What is your paypal email? (can send via private IM if possible)
    – gvanto
    Mar 17, 2016 at 0:42
  • 2
    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 :).
    – andrew.46
    Mar 17, 2016 at 1:01
  • 2
    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! Nov 7, 2017 at 4:39
  • @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 :)
    – andrew.46
    Nov 7, 2017 at 6:43
  • 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...
    – RBV
    Apr 18, 2018 at 18:59
1

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.

1
  • 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... Jul 8 at 14:48
1

andrew.46's answer provides solution for building correctly on any debian-like distro, but does not really answer why the original poster's build was not finding libpng.

Easy way to find the culprit is to run pkg-config --cflags libpng as follows

user@mac ~ % pkg-config --cflags libpng
Package zlib was not found in the pkg-config search path.
Perhaps you should add the directory containing `zlib.pc'
to the PKG_CONFIG_PATH environment variable
Package 'zlib', required by 'libpng', not found

This provides insight into what's missing. In my case it was zlib. After installing zlib:

user@mac ~ % pkg-config --cflags libpng
-I/usr/local/include/libpng16 -I/usr/local/include

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.