I wanted to know what format would be good on all platforms if I wanted to create a game and release it on all three platforms. I just mentioned the
...
So it looks like a developer would be safe if they stuck with .PNG, GIF, and JPG.
OK, that's an entirely different issue again, it sounded like you were asking about web compatibility, but you're not.
Whether or not you can develop programs or games with certain image files depends entirely on the language you're doing it in.
In the case of BlitzMax, it supports the same image formats on all the supported platforms: You can use PNG, JPG, BMP and TGA in your programs on Windows, Linux and the Mac. Whether or not a webbrowser on the Mac is incapable of rendering .BMP has nothing to do with it: BlitzMax comes with its own built-in BMP rendering module.
BlitzMax does NOT have built-in support for .GIF, so unless you write your own decoder module for .GIF you won't be able to use those.
As far as which format to use, depends on several factors:
1) JPG is great for 'photographic' information. Full color photo's, complicated backgrounds, etc. can compress very well with JPG. JPG is a so-called 'lossy' compression algorithm, and it will discard some color information and crispness (how much depends on the compression ratio you picked). It will be able to get the smallest file sizes by far, but is not suitable for all types of images since they can introduce a lot of noise in images that do not use a great many different colors.
2) PNG uses lossless compression, meaning that no information gets lost during compression, and the exact original information will be displayed, unlike JPG. File sizes will be larger than the same image in JPG, will the quality can be significantly better. Another major advantage of PNG is that it contains alpha-information (transparancy), so it is great for things like sprites: unlike normal masked sprites, with alpha blending you can use gradations of transparancy: smooth edges around a sprite, half-transparent windows, etc.
3) TGA and BMP are more legacy file formats, and of lesser use. They too are lossless file formats like PNG, but their compression tends to be a little lower, and they do not support an alpha channel as far as I know.
For game programming I would personally stick to PNG and JPG... In the game I'm working on right now, the overall backgrounds are all done with JPG, but I'm using PNG's for all the sprites.
(In my case, a particular 800x600 backdrop screen was 112KB as a JPG, or 580KB as a PNG. Since there was little visual difference between the two, simply using the JPG instead of the PNG there cut 468KB off the final size of my EXE.)