libpng: Bitmap image support#


libpng is the official PNG reference library. It supports almost all PNG features, is extensible, and has been extensively tested for over 13 years. The home site for development versions (i.e., may be buggy or subject to change or include experimental features) is, and the place to go for questions about the library is the png-mng-implement mailing list.



The libpng license - see

Upstream Contact#

The png mailing lists - see

Special Update/Build Instructions#

  • On old versions of Darwin, the symbolic links libpng.* created by libpng16 may interfere with a system-wide libPng.dylib.

    – the following is very likely to be obsolete in 2014 —

    This system-wide library is likely to be a different version and on top of that, the symbols exported there are prefixed with “_cg” (for “Core Graphics”). So even if by chance the functionalities of the two libraries were interchangeable, libraries or applications looking for one and being presented the other won’t find the symbols they expect. Note the uppercase “P” which could prevent this conflict; unfortunately, the default filesystem used by Apple is case-insensitive.

    Note there would be no problem if the system-wide library was not looked for when Sage is being built or run, but that’s not the case either; it is at least looked for by the “ImageIO” framework:

    • when Python is built with Mac OS extensions, fixed in #4008;

    • when Mercurial is built because it uses $EDITOR, cf. #4678;

    • when R is built and it finds -lpng, cf. #4409 and #11696.

    – this is no longer done, as of #27186 —

    As not all of these problems are easily dealt with and new ones may arise, we chose to delete the $SAGE_LOCAL/lib/libpng.* symlinks. Therefore, some packages like Tachyon, which by default look for -lpng are patched to look for -lpng16 instead.




Version Information#



Equivalent System Packages#

$ apk add libpng-dev
$ conda install libpng
$ sudo pkg install graphics/png
$ brew install libpng
$ sudo port install libpng
$ sudo zypper install pkgconfig\(libpng16\)
$ sudo slackpkg install libpng
$ sudo xbps-install libpng-devel


If the system package is installed, ./configure will check if it can be used.