type TTGAFileObj = TFileStream; // manage open / close file function genTGA_OpenFile(aFileName : String; aMode : Integer): TTGAFileObj; procedure genTGA_CloseFile(var aStream : TFileStream); // read header / image to dst / palette function genTGA_ReadHeader(aStream : TStream; aTGAHeader : PTGAHeader): Boolean; function genTGA_ReadPalette(aStream : TStream; aTGAHeader : PTGAHeader; aDst : Pointer): Boolean; function genTGA_ReadImage(aStream : TStream; aTGAHeader : PTGAHeader; aDst : Pointer): Boolean; function genTGA_ReadImageNoFlip(aStream : TStream; aTGAHeader : PTGAHeader; aDst : Pointer): Boolean; // flip image data horizontal/vertical procedure genTGA_FlipHor(aData : Pointer; aWidth, aHeight, aBPP : Integer); procedure genTGA_FlipVert(aData : Pointer; aWidth, aHeight, aBPP : Integer); // return true if TGA header indicates Palette / RLE encoding function genTGA_IsPalette(aTGAHeader : PTGAHeader): Boolean; function genTGA_IsRLECoded(aTGAHeader : PTGAHeader): Boolean; // expand 8 bit palette image to true color function genTGA_ExpandToTrueColor(aTGAHeader : PTGAHeader; aImage, aPalette : Pointer): Boolean; // get expanded image size function genTGA_ImageSize(aTGAHeader : PTGAHeader): Integer; function genTGA_PaletteSize(aTGAHeader : PTGAHeader): Integer; // for decoding RLE data function genTGA_DecodeRLE(aStream : TStream; aTGAHeader : PTGAHeader; aDst: Pointer): Boolean;