Ok, I've had some spare time to take a closer look at file formats sizes. Of all the popular formats, a sample picture gave me these outcomes:
- JPG (100 quality) - 125 kb
- JPG (80 quality) - 27.2 kb
- PNG (32 bit) - 371 kb
- BMP (24 bit) - 1.37 mb
- DDS (DXT3 format) - 468 kb
- TGA (uncompressed) - 1.37 mb
- TIF - 552 kb
- GIF (8 bit) - 178 kb
Of these, JPG has the smallest size and best quality, but cannot hold alpha. PNG can hold as many colours as JPG (as long as either 24 or 32 bit), but only the 8 and 32 can hold alpha and of that it is only pure alpha. BMP is useless, being the same size as a TGA, but with no alpha. DDS is far smaller than a TGA, can hold all the data a TGA can, including partial transparency, but it may be confusing, having a large number of versions, and being based for DirectX models. TIF is basically useless, being no better than JPG, and having bad compression. Finally, GIF can hold animation, but that will increase the size, and GIFs are limited to 256 colors. Dithering levels can be set to choose how the image looks with those limited colors though.
So the results are that JPG can get the most for file size when no alpha is needed, DDS can reduce the file size by a third when alpha is needed, GIF can have a very small file size as well, and can hold animation, but is only capable of 256 colors and 1 alpha.
UNTESTED:
- MNG - It's a animation format, but I can't get my exporter to work, and it isn't very common, so...
- RAW - Too big, totally useless, very incompatible, and few exporters
- Software specific formats, such as XSF (the GIMP), PDN (Paint.NET), and PSD (Photoshop). Naturally, they aren't very compatible
I still stand by my decision that animated GIFs should be implimented. DDS is optional, and since my programming skills are very basic, I don't know how difficult that would be (would need to check DirectX SDK). However, DDS would reduce filesize nicely. While we're at it, might as well improve the G3D format, but that's a topic for GAE.