Quote Originally Posted by cairnswm
Very Cool

I had a few problems through:

[pascal] f: Tfile;
TGAHeader: Tmemorystream; [/pascal]

changes to
[pascal] f: Tmemorystream;
TGAHeader: TTGAHeader;[/pascal]
yeah, sorry, i use Tfile class, which is compatible with Tmemorystream, so i just wanted to rename the variable types and seems i made an error, i'll edit my post to correct this.

3_of_8: BMP has also a top-left origin, and also doesn't need any encoding.

raw formats such as tga and bmp has advantage over jpeg and png, because they don't need encoding, that makes them simplier to implement.