A list of useful tools for reading, creating and modifying PNG files. This may be helpful for creating test images, or for analyzing files.
Homepage Mac application which can read and generate HDR PNG.
Homepage and maintained on sourceforge.
Used to recompress PNG, optionally remove chunks or add a few such as sRGB.
Depends on libpng. Author, Glenn Randers-Pehrson, is deceased, last update was 2017.
Homepage and maintained on sourceforge
Used to recompress PNG, including optionally reducing bit depth, changing color type, and reducing the palette.
Depends on libpng. Originally a fork of pngcrush by Cosmin Truta, now has a different feature set and has added GIF and BMP support.
Homepage and maintained on GitHub
PNG compression optimizer, written in Rust. Recognizes cICP
chunks and does not discard them.
Homepage and maintained on GitHub.
By @DavidBuchanan314 Easily extensible to spit out new chunks, so great for prototyping and creating test files.
Depnds on zlib, only.
Repairs corruption in undisplayable Apple PNG icons which were extracted from iOS apps; removes CgBI chunk, converts premultiplied samples back to RGB, etc. Uses node.
Readme and maintained at axot/SNG
This is a textual format to represent PNG files, which can be edited and then converted back to PNG. Ancient code, depends on libpng so no support for APNG; and eXIf also is not supported by SNG, despite libpng support.
Readme and maintained at sandflow/hdr4png
This is a Python script by Pierre-Anthony Lemieux to add a specific iCCP
chunk to PNG to signal BT.2100 PQ usage.
Homepage, no repo, source tarball.
Depends on libpng so currently no APNG support. Older versions bundled with some Linux distros have no eXIf support.
Homepage and source at nayuki/ Nayuki-web-published-code/png-file-chunk-inspector/
Browser-based checker written in Javascript. No libpng dependency. Now supports APNG. Does not support other Third Edition chunks.
Chris Lilley had experimentally extended it to add cICP, APNG support (easy since it is all JavaScript).
Browser-based tool which displays hidden (by alpha channel, or by incorrect IHDR
height) data in PNG (and other) images.
###MediaInfo
Multi-platform GUI which displays metadata on many image and video formats including PNG. Recent builds support cICP
, mDCv
and cLLI
.
Maintained at pnggroup/libpng, although most of the issues are at the older GlennRP repo (issues).
This is the original, C, reference library. Depends on zlib. It supports reading and writing PNG files. It has been criticized for being hard to use, and difficult to extend.
Does not support APNG, or any of the Third Edition chunks
Homepage and maintained at randy408/libspng. There is documentation
A faster C library for reading and writing PNG. Does not depend on zlib (or libpng).
Does not support APNG (although that is planned) and there is an open PR which adds APNG support, or any of the Third Edition chunks, although there is an open issue on cICP support.
Homepage and maintained on GitHub
C library and C++ wrapper by Lode Vandevenne.
Readme and maintained at masq/pnger
Python library for parsing PNG, mainly for forensic purposes.
Now supports APNG and Third Edition chunks.
Homepage and maintained at nayuki/PNG-library
This is a recent Java library for read and write.
Homepage and maintained on Google code.
Seems to support reading only.