PNG_IO is an Ada 95 Portable Network Graphics (PNG) coder/decoder. It is designed to provide Ada 95 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 95 substitute for libpng, the PNG 'C' library. If what you want to do is simply read or write a PNG image from an Ada 95 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 onwards, PNG_IO complies with the Ravenscar profile defined in the 2005 Ada LRM. Note however, that the package is Ada 95 compliant and is intended to remain so for some time.
PNG_IO is intended to be operating system and machine independent. It depends on (withs) only standard Ada 95 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 (e.g. Windows 95/98/NT). PNG_IO also requires the Zlib-Ada binding to Zlib.
To access the latest release and CVS repository, follow this link to the project summary page.
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.