Gary Harris.
3 February, 2010

Web Pages:
Home page:

LibInfo is a free C library to read Amiga icons and write the images to XPM or PPM format.
LibInfo currently understands the default and Newicons formats.
LibInfo and this documentation are copyright © 2003-2010 Gary Harris and made available under the terms of the GNU General Public License V2 or higher.

LibInfo is based on amicon, an Amiga icon to ppm/xpm convertor, copyright 2001 Adam Sampson <>.


Welcome and thank you for taking an interest in LibInfo. LibInfo is written in platform-independent C in an effort to make it as widely useful as possible. This library is the result of about a year's searching for information about the Amiga icon format and how to convert to and from it. This search led me, at long last, to amicon, by Adam Sampson, a nifty little converter written for Unix and itself based on some BeOS code that I had also found during my search but had been unable to modify successfully.

My first step was to modify amicon to compile on Windows. The result, amicon 2, is available at my web site, along with WinAmicon, a Windows GUI conversion of the same code. Whilst writing WinAmicon, I used paintlib as the graphics conversion engine and began to think that paintlib would benefit from built-in Amiga icon awareness. After successfully adding extraction code to paintlib manually, I decided to encapsulate that code into a stand-alone library and LibInfo was born.

Using LibInfo

Usage is straightforward. No special preprocessor definitions are required at this stage. XPM and PPM output code can be excluded from compilation if not required by setting LI_OUTPUT_XPM or LI_OUTPUT_PPM to 0, in libinfo.h.

If you wish to recompile the documentation or create a different format, you will need the doxygen package, available via the link at the bottom of the page. Doxygen is capable of creating documentation in a wide range of formats from source code. HTML and Windows Compiled Help are provided with the library.

Modifying LibInfo

You are free to use LibInfo as you wish within the limits of the GNU GPL. Bug reports, fixes, additions, bindings etc. are all very welcome. If you change the library and intend to submit your changes, please try and stick to the existing coding style as much as possible. Do not remove any of the additional tags present in comments, they are required for the doxygen documentation. Removing them will break the documentation. If you are not familiar with doxygen, do yourself a favour and look into it, it's excellent and free! Failing that, use normal comments so that I can add the additional tags for you.

Global functions, defines, variables etc. should have names starting with "LI". Memory deallocation etc. should be added to LICleanUp() where appropriate. Major changes are probably best discussed on the mailing list first to avoid problems and duplication of effort.

Changes should be clearly marked so that I can see exactly what you've done and I can give you credit where appropriate.

Please use the SourceForge facilities for submissions wherever possible.


Feedback, corrections or suggestions regarding this documentation or LibInfo should be submitted via the SourceForge facilities.



Version 1.1 - 20 January, 2010.

Version 1.0 - 14 January, 2010.

Version 1.0 - 20 November, 2003.

Generated by  doxygen 1.6.2