tgaFile(API)

From EosPedia
Jump to: navigation, search

DataManip/tgaFile is API for tga data.

constant

typedef enum tgaFileColorMap {
	tgaFileColorMapNoColorMap=0,
	tgaFileColorMapColorMap=1
} tgaFileColorMap;
typedef enum tgaFileImageType {
	tgaFileImageTypeNoImage  = 0,	
	tgaFileImageTypeColorMappedImage = 1,
	tgaFileImageTypeTrueColorImage   = 2,
	tgaFileImageTypeBlackAndWhite    = 3,
	tgaFileImageTypeRLEColorMappedImage = 9,
	tgaFileImageTypeRLETrueColorImage   = 10,
	tgaFileImageTypeRLEBlackAndWhite    = 11
} tgaFileImageType;
typedef enum tgaFileImageOrigin {
	tgaFileImageOriginBottomLeft  = 0,
	tgaFileImageOriginBottomRight = 1,
	tgaFileImageOriginTopLeft     = 2,
	tgaFileImageOriginTopRight    = 3 
} tgaFileImageOrigin;

struct

typedef struct tgaFileColorMapSpecification {
	short FirstEntryIndex;
	short ColorMapLength;
	unsigned char ColorMapEntrySize;
} tgaFileColorMapSpecification;
typedef union tgaFileDescriptor {
	unsigned char All;
	struct {
		unsigned char AlphaChannelBits:4;
		unsigned char ImageOrigin:2;
		unsigned char Unused:2;
	} Bit;
} tgaFileDescriptor;
typedef struct tgaFileImageSpecification {
	short Xorigin;
	short Yorigin;
	short Width;
	short Height;
	unsigned char Depth;
	tgaFileDescriptor Descriptor;
} tgaFileImageSpecification;
typedef struct tgaFileHeader {
	unsigned char IDLength;                        /*  1 Byte */
	unsigned char ColorMapType;                    /*  1 Byte */              
	unsigned char ImageType;                       /*  1 Byte */
	tgaFileColorMapSpecification ColorMapSpec;     /*  5 Bytes */
	tgaFileImageSpecification ImageSpec;           /* 10 Bytes */
} tgaFileHeader;                                   /* 18 Bytes */ 
typedef unsigned char tgaFileImageID;
typedef unsigned char tgaFileColorMapData;
typedef unsigned char tgaFileImageData;
typedef unsigned char tgaFileDeveloperData;
typedef struct tgaFile {
	tgaFileHeader        Header;                   /* Field 1-5 : fixed: 18 Bytes */
	tgaFileImageID*      ImageID;                  /* Field 6: variable */
	tgaFileColorMapData* ColorMapData;             /* Field 7: variable */
	tgaFileImageData*    Image;                /* Field 8: variable */
	tgaFileDeveloperData* DeveloperData;           /* Field 9: variable */ 

	/* Additional Information */
	int flagHeader; 
	int ImageDataOffset;
	int ImageDataBytes;
} tgaFile;

API

Initialize

If tga is NULL, allocate the memory. If fpt is not NULL, Read the header by using tgaFileHeaderRead, and store to tga.

extern tgaFile* tgaFileInit(tgaFile* tga, FILE* fpt, int mode);

Initialize tga->Image allocating the memory. If the header doesn't exist, read header from fpt by using tgaFileHeaderRead.

extern tgaFile* tgaFileImageInit(tgaFile* tga, FILE* fpt, int mode);

Read tga file

Read the header information from fpt, and store to tga->Header. If tga is NULL, allocate the memory by using tgaFileInit beforehand.

extern tgaFile* tgaFileHeaderRead(tgaFile* tga, FILE* fpt, int mode);

Read the data from fpt, and store to tga->Image. Then store also the header by using tgaFileImageInit.

extern tgaFile* tgaFileImageDataRead(tgaFile* tga, FILE* fpt, int mode);

Call tgaFileImageDataRead.

extern tgaFile* tgaFileRead(tgaFile* tga, FILE* fpt, int mode);

tgafileOutput

Output header of tga to file out. (mode: Output type by tgaFileColorMap)

extern void tgaFileHeaderPrint(tgaFile* tga, FILE* out, int mode);