Information from source codes
gifFile.h
#ifndef GIF_FILE_H
#define GIF_FILE_H
#include "gif_lib.h"
/* struct begin */
typedef struct gifFileHeader {
char sig[3];
char ver[3];
} gifFileHeader;
/* struct end */
/* constant begin */
#define scdGCT (0x80)
#define scdGCTcres (0x70)
#define scdGCTsort (0x08)
#define scdGCTsize (0x07)
/* constant end */
/* struct begin */
typedef struct gifFileScreenDesc {
unsigned short scwidth;
unsigned short scheight;
unsigned char flags;
unsigned char bgclr;
unsigned char pixasp;
} gifFileScreenDesc;
/* struct end */
/* constant begin */
#define imdLCT (0x80)
#define imdInterlace (0x40)
#define imdLCTsort (0x20)
#define imdRESV (0x18)
#define imdLCTsize (0x07)
/* constant end */
/* struct begin */
typedef struct gifFileImageDesc {
unsigned char id;
unsigned short xleft;
unsigned short ytop;
unsigned short imwidth;
unsigned short imheight;
unsigned char flags;
} gifFileImageDesc;
typedef struct gifFileColorTable {
unsigned char r;
unsigned char g;
unsigned char b;
} gifFileColorTable;
typedef struct gifFileImageDefinition {
gifFileImageDesc Desc;
gifFileColorTable* LCT;
} gifFileImageDefinition;
typedef struct gifFileCtrlExtensions {
unsigned char id;
unsigned char label;
unsigned char size;
unsigned char flags;
unsigned short delay;
unsigned char trcrl;
} gifFileCtrlExtensions;
typedef struct gifFileCommentExtensions {
unsigned char id;
unsigned char label;
} gifFileCommentExtensions;
typedef struct gifFileTextExtensions {
unsigned char id;
unsigned char label;
unsigned char size;
unsigned char xleft;
unsigned short ytop;
unsigned char txwidth;
unsigned char txheight;
unsigned char cewidth;
unsigned char ceheight;
unsigned char fgclr;
unsigned short bgclr;
} gifFileTextExtensions;
typedef struct gifFileApplicationExtensions {
unsigned char id;
unsigned char label;
unsigned char size;
char apname[8];
char apcode[3];
} gifFileApplicationExtensions;
typedef struct gifFile {
gifFileHeader Header;
gifFileScreenDesc ScrDesc;
gifFileColorTable* GCT;
long nImage;
gifFileImageDefinition* ImageDef;
char Tailer;
} gifFile;
/* struct end */
/* constant begin */
#define OUT_OF_MEMORY -10
#define BAD_CODE_SIZE -20
#define READ_ERROR -1
#define WRITE_ERROR -2
#define OPEN_ERROR -3
#define CREATE_ERROR -4
/* constant end */
/* struct begin */
#define LOCAL static
#define IMPORT extern
#define FAST register
typedef short WORD;
typedef unsigned short UWORD;
typedef char TEXT;
typedef unsigned char UTINY;
typedef long LONG;
typedef unsigned long ULONG;
typedef int INT;
/* struct end */
#include "mrcImage.h"
/* prototype begin */
extern int lmrc2gif(char* out, mrcImage* in, ColorMapObject* ColorMap, long mode);
extern int lmrc2gifColor(char* out, mrcImage* r, mrcImage* g, mrcImage* b, ColorMapObject* ColorMap, int n, int nr, int ng, int nb, long mode);
extern ColorMapObject* gifColorMapInit(int n, long mode);
extern ColorMapObject* gifColorMapGrey(ColorMapObject* ColorMap, int n);
extern ColorMapObject* gifColorMapColor(ColorMapObject* ColorMap, int n, int nr, int ng, int nb);
/* prototype end */
#endif /* GIF_FILE_H */