📄 gif89a.h
字号:
#if !defined(_GIF89A_)
#define _GIF89A_
//#include <fstream.h>
#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
#pragma pack(push,1)
typedef struct
{ BOOL active;
UINT disposalMethod;
BOOL userInputFlag;
BOOL trsFlag;
WORD delayTime;
UINT trsColorIndex;
}GCTRLEXT;
typedef struct
{ WORD imageLPos;
WORD imageTPos;
WORD imageWidth;
WORD imageHeight;
BOOL lFlag;
BOOL interlaceFlag;
BOOL sortFlag;
UINT lSize;
BYTE *pColorTable;
BYTE *dataBuf;
GCTRLEXT ctrlExt;
}FRAME;
#pragma pack(pop)
typedef FRAME *LPFRAME;
typedef const FRAME *LPCFRAME;
#pragma pack(push,1)
typedef struct
{ UINT frames;
WORD scrWidth,scrHeight;
BOOL gFlag;
UINT colorRes;
BOOL gSort;
UINT gSize;
UINT BKColorIdx;
UINT pixelAspectRatio;
BYTE *gColorTable;
}GLOBAL_INFO;
#pragma pack(pop)
typedef GLOBAL_INFO *LPGLOBAL_INFO;
typedef const GLOBAL_INFO *LPCGLOBAL_INFO;
#pragma pack(push,1)
typedef struct
{ UINT len;
unsigned char* p;
}STRING_TABLE_ENTRY;
#pragma pack(pop)
class CGif89a
{
private:
//ifstream ifs;
FILE *ifs;
char version[4];
BOOL error;
BOOL opened;
BOOL inMem;
BYTE gColorTable[256*3];
BYTE lColorTable[256*3];
//streampos dataStart;
long dataStart;
FRAME *allFrames;
UINT curIndex;
private:
//UINT checkFrames(ifstream&);
//BOOL getAllFrames(ifstream&);
UINT checkFrames(FILE *ifstream);
BOOL getAllFrames(FILE *ifstream);
BOOL extractData(FRAME* f,FILE *ifstream);
BOOL initStrTable(STRING_TABLE_ENTRY* strTable,UINT rootSize);
BOOL addStrTable(STRING_TABLE_ENTRY* strTable,UINT addIdx,UINT idx,unsigned char c);
//
private:
GLOBAL_INFO gInfo;
FRAME curFrame;
GCTRLEXT ctrlExt;
public:
CGif89a();
CGif89a(LPCTSTR fileName,BOOL inMem);
~CGif89a();
BOOL operator!();
BOOL open(LPCTSTR fileName,BOOL inMem);
void close();
LPCSTR getVer();
LPCFRAME getNextFrame();
//
LPCFRAME getCurFrame(); //
//
LPCGLOBAL_INFO getGlobalInfo();
//
//
LPCFRAME getHeadFrame();
//reset data
void Reset()
{
fseek(ifs,dataStart,SEEK_SET);//
}
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -