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, 2022 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

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .