- Visual C++源码
- Visual Basic源码
- C++ Builder源码
- Java源码
- Delphi源码
- C/C++源码
- PHP源码
- Perl源码
- Python源码
- Asm源码
- Pascal源码
- Borland C++源码
- Others源码
- SQL源码
- VBScript源码
- JavaScript源码
- ASP/ASPX源码
- C#源码
- Flash/ActionScript源码
- matlab源码
- PowerBuilder源码
- LabView源码
- Flex源码
- MathCAD源码
- VBA源码
- IDL源码
- Lisp/Scheme源码
- VHDL源码
- Objective-C源码
- Fortran源码
- tcl/tk源码
- QT源码
GIFAPI.h
资源名称:VisualC++.rar [点击查看]
上传用户:gdjinyi
上传日期:2013-02-01
资源大小:1701k
文件大小:3k
源码类别:
源码/资料
开发平台:
Visual C++
- typedef struct gifheader
- {
- BYTE bySignature[3];
- BYTE byVersion[3];
- } GIFHEADER;
- typedef struct gifscrdesc
- {
- WORD wWidth;
- WORD wDepth;
- struct globalflag
- {
- BYTE PalBits : 3;
- BYTE SortFlag : 1;
- BYTE ColorRes : 3;
- BYTE GlobalPal : 1;
- } GlobalFlag;
- BYTE byBackground;
- BYTE byAspect;
- } GIFSCRDESC;
- typedef struct gifimage
- {
- WORD wLeft;
- WORD wTop;
- WORD wWidth;
- WORD wDepth;
- struct localflag
- {
- BYTE PalBits : 3;
- BYTE Reserved : 2;
- BYTE SortFlag : 1;
- BYTE Interlace : 1;
- BYTE LocalPal : 1;
- } LocalFlag;
- } GIFIMAGE;
- typedef struct gifcontrol
- {
- BYTE byBlockSize;
- struct flag
- {
- BYTE Transparency : 1;
- BYTE UserInput : 1;
- BYTE DisposalMethod : 3;
- BYTE Reserved : 3;
- } Flag;
- WORD wDelayTime;
- BYTE byTransparencyIndex;
- BYTE byTerminator;
- } GIFCONTROL;
- typedef struct gifplaintext
- {
- BYTE byBlockSize;
- WORD wTextGridLeft;
- WORD wTextGridTop;
- WORD wTextGridWidth;
- WORD wTextGridDepth;
- BYTE byCharCellWidth;
- BYTE byCharCellDepth;
- BYTE byForeColorIndex;
- BYTE byBackColorIndex;
- } GIFPLAINTEXT;
- typedef struct gifapplication
- {
- BYTE byBlockSize;
- BYTE byIdentifier[8];
- BYTE byAuthentication[3];
- } GIFAPPLICATION;
- typedef struct gifd_var
- {
- LPSTR lpDataBuff;
- LPSTR lpBgnBuff;
- LPSTR lpEndBuff;
- DWORD dwDataLen;
- WORD wMemLen;
- WORD wWidth;
- WORD wDepth;
- WORD wLineBytes;
- WORD wBits;
- BOOL bEOF;
- BOOL bInterlace;
- } GIFD_VAR;
- typedef GIFD_VAR FAR *LPGIFD_VAR;
- typedef struct gifc_var
- {
- LPSTR lpDataBuff;
- LPSTR lpEndBuff;
- DWORD dwTempCode;
- WORD wWidth;
- WORD wDepth;
- WORD wLineBytes;
- WORD wBits;
- WORD wByteCnt;
- WORD wBlockNdx;
- BYTE byLeftBits;
- } GIFC_VAR;
- typedef GIFC_VAR FAR *LPGIFC_VAR;
- // 宏运算
- #define DWORD_WBYTES(x) ( (((x) + 31UL) >> 5) << 2 )
- #define WORD_WBYTES(x) ( (((x) + 15UL) >> 4) << 1 )
- #define BYTE_WBYTES(x) ( ((x) + 7UL) >> 3 )
- //常量
- #define MAX_BUFF_SIZE 32768 /* 32K */
- #define MAX_HASH_SIZE 5051
- #define MAX_TABLE_SIZE 4096 /* 12-bit */
- #define MAX_SUBBLOCK_SIZE 255
- // 函数原型
- BOOL WINAPI DIBToGIF(LPSTR lpDIB, CFile& file, BOOL bInterlace);
- void WINAPI EncodeGIF_LZW(LPSTR lpDIBBits, CFile& file,
- LPGIFC_VAR lpGIFCVar,WORD wWidthBytes, BOOL bInterlace);
- void WINAPI GIF_LZW_WriteCode(CFile& file, WORD wCode, LPSTR lpSubBlock,
- LPBYTE lpbyCurrentBits,LPGIFC_VAR lpGIFCVar);
- HDIB WINAPI ReadGIF(CFile& file);
- void WINAPI ReadSrcData(CFile& file, LPWORD lpwMemLen, LPDWORD lpdwDataLen,
- LPSTR lpSrcBuff, LPBOOL lpbEOF);
- void WINAPI DecodeGIF_LZW(CFile& file, LPSTR lpDIBBits,
- LPGIFD_VAR lpGIFDVar,WORD wWidthBytes);