PNG_IO is an Ada Portable Network Graphics (PNG) coder/decoder. It is designed to provide Ada programmers with direct access to images and graphics stored in PNG format files.
PNG is an image file format supporting greyscale and colour images with and without alpha channels. It is patent-free and offers good levels of lossless compression. The PNG format is defined by the W3C/ISO/IEC Standard for PNG which is available from the PNG website (home page) and various mirrors.
PNG_IO is not intended to serve as an Ada substitute for libpng, the PNG 'C' library. If what you want to do is simply read or write a PNG image from an Ada program, then PNG_IO may be what you want. If you want to do something fancy like display an image progressively as it is read from a remote location, then PNG_IO will not be suitable as it stands.
From release 4.3 onward, PNG_IO complies with the Ravenscar profile defined in the 2005 Ada LRM. Note however, that version 4 of the package remains Ada 95 compliant. Version 5 when released, will require Ada 2012.
PNG_IO is intended to be operating system and machine independent. It depends on (withs) only standard Ada packages.
In order to compile and use PNG_IO, you will need to have the Zlib (home page) compression and decompression library. All applications using PNG_IO must be linked (statically or dynamically) with Zlib. Zlib is freely available as C source code, and as pre-compiled libraries for some operating systems. PNG_IO also requires the Zlib-Ada binding to Zlib.
To access the latest release and SVN repository, follow this link to the project summary page. PNG_IO was converted from a CVS repository in November 2017.
There is a mailing list for new release announcements. For details of how to subscribe, see the project summary page.PNG_IO was written by Steve Sangwine.