[Graphic of Lady Ada]

PNG_IO - An Ada 2012 package for input/output of Portable Network Graphics (PNG) files

PNG_IO is an Ada 2012 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 first defined in the Ada 2005 LRM. However, all versions of the package prior to version 5 were Ada 95 compliant and made no use of any Ada 2005 or later features. Version 5 requires Ada 2012 because it has added support for the International Text (iTXt) chunk and this requires UTF8 string types and handling. Subsequent development has also made use of other Ada 2012 features to make the code clearer and simpler.

Prerequisites

PNG_IO is intended to be operating system and machine independent. It depends on (withs) only standard Ada packages (apart from Zlib).

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 provide the binding between the Zlib library and the Ada code of PNG_IO.

How to get it

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.

Mailing list

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.
Created: 3 August 2004. Edited: 23 March 2022.
Get PNG_IO at SourceForge.net. Fast, secure and Free Open Source software downloads