PNG 2 ICO File Converter v1.01
------------------------------
by Niall Moody (http://www.niallmoody.com/news.htm)

Converts 32-bit (24 bit colour, 8 bit alpha) PNG images into the corresponding Windows ICO file.
You can have up to 9 images in the ICO file (e.g. for 16x16, 32x32 and 48x48 versions of the
one image).  I made this because there doesn't seem to be any freeware way of making ico files
with an alpha channel (so you can do nice blending/anti-aliasing stuff), and I wanted to have
nice looking icons for my programs (I'm using Visual C++ v6.0, maybe later versions have better
ico support).  Anyway, now you just have to create your image, save it as a png with an alpha-
channel, and use this little program to convert it.  I won't give instructions for how to create
the png image, but it's fairly simple to do it in programs like The Gimp (http://www.gimp.org),
if you want to stick to free (to-download) software.

By the way, the program's icon was made using Paint Shop Pro and converted by PNG2ICO.

Note : At the moment, this program will only handle 32-bit PNGs - if you want to use e.g. 256
colour images, you're going to run into problems...

The Source Code
---------------

(the program's now licensed under the GPL, but the following still applies)

I've included my source files, although I don't think I've commented them at all, so they may
not be particularly easy to understand (I definitely have to improve my naming of temporary
variables here...).  I used the libraries wxWidgets (http://www.wxwidgets.org) and libPNG
(http://www.libpng.org/pub/png/libpng.html, also requires ZLib - http://www.gzip.org/zlib/).
Here's a rough description of the files:
- png2ico.h, cpp: 	The main application, nothing important to see here.
- p2iFrame.h, cpp: 	Handles the User Interface stuff (how the controls are laid out etc.
- p2iconvert.h, cpp:	A small class that does the actual converting - call AddFile() to add
			an image, then Convert() to convert it to an .ico file.

Change Log
----------
v1.01 - Fixed a bug where it would crash if you tried to click Do It... more than once, embedded
	the arrow image in the executable thanks to the BinaryBuilder command line tool from
	the JUCE library, and finally found out how you embed the manifest file in the
	executable (yay!)...  Also made a better icon for it, and licensed it under the GPL.
v1.00 - First public release.
