I had a play with png but found it a bit complicated for me - I'm simple. Plus I think it added a few hundred kb to the exe but that could have been because I built the entire thing instead of just support for what I needed. If you get png working well with a small footprint I would like to hear how you did it.
Instead, I ended up building a little win32 command line utility that converted png files with alpha channel into my own encoded format that included the alpha channel and with pixel format in 16bit565 already so no conversion was required at the ppc side. Works really well. The encoder/decoder only has about a 2kb footprint and is really fast, with the compromise being images are larger than they could have been if png, but hasn't been an issue so far. If you had a lot of rich images that need to be alpha blended then png would probably be a good option.
Another option could be to store the alpha as a separate resource in your own custom way and merge it with the pixel data when the image is loaded. I would suspect the alpha data would compress well using a simple run length encoding.
In any case you will need to build additional rendering capabilities to account for the alpha channel (assuming you are not using some library that has it already). I chose to store the alpha value with each pixel as opposed to in a separate block of memory but I don't know if that's better or worse.
There was another thread where Torus??? (I think - going back a bit now) posted how to do alpha blending with a few bitwise and a single mul which to this day I'm thankful for. If you can't find it I can post some code. Correct me if I'm wrong but the option of doing a single mul with 64bit is really bad - the Torus way (I hope it wasn't someone else
) did it with a single mul and all 32bit - lightning fast. In fact the app I'm working on at the moment I originally stayed away from anything alpha blended but performance is so good that the entire screen pretty much is now a product of heaps of alpha blended images.