Cms_MMSGif.h
上传用户:fuyouda
上传日期:2021-12-23
资源大小:164k
文件大小:4k
开发平台:

C/C++

  1. #ifndef __GIF_H__
  2. #define __GIF_H__
  3. #define GIF_MAXCOLORS 256
  4. /************************************************************/
  5. /* Gif数据结构 */
  6. /************************************************************/
  7. typedef struct tagCOLOR
  8. {
  9. char red;
  10. char green;
  11. char blue;
  12. //CENT_FILL_FIELD1
  13. } GIFColor;
  14. typedef enum {
  15. gif_image, 
  16. gif_comment, 
  17. gif_text
  18. } GIFStreamType;
  19. typedef enum {
  20. gif_no_disposal = 0,
  21. gif_keep_disposal = 1, 
  22. gif_color_restore = 2, 
  23. gif_image_restore = 3
  24. } GIFDisposalType;
  25. typedef struct {
  26. int transparent; /* transparency index           */
  27. int delayTime;     /* Time in 1/100 of a second    */
  28. int inputFlag;     /* wait for input after display */
  29. GIFDisposalType disposal;
  30. } GIF89info;
  31. typedef struct GIFData {
  32. GIF89info info;
  33. int x, y;
  34. int width, height;
  35. GIFStreamType type;
  36. union unData{
  37. struct tagImage{
  38. int cmapSize;
  39. unsigned char cmapData[GIF_MAXCOLORS][3];
  40. unsigned char *data;
  41. int interlaced;
  42. } image;
  43. struct tagText{
  44. int fg, bg;
  45. int cellWidth, cellHeight;
  46. int len;
  47. char *text;
  48. } text;
  49. struct tagComment{
  50. int len;
  51. char *text;
  52. } comment;
  53. } data;
  54. struct GIFData *next;
  55. } GIFData;
  56. typedef struct {
  57. int width, height;
  58. int colorResolution;
  59. int colorMapSize;
  60. int cmapSize;
  61. unsigned char cmapData[GIF_MAXCOLORS][3];
  62. int background;
  63. int aspectRatio;
  64. GIFData *data;
  65. } GIFStream;
  66. /* Revised by Longqiangl 2003-12-22*/
  67. //GIFData *GIFReadSlide(FILE_HANDLE fd);
  68. char GIFReadSlide(FILE_HANDLE fd,GIFData **pFrame);
  69. GIFStream *GIFReadHead(FILE_HANDLE fd);
  70. typedef struct _tagGifInfo{
  71.     char *filename;         /*** gif文件名称  ***/    
  72.     int screenwidth;        /*** 显示屏幕的宽度***/
  73.     
  74.     double proportion;      /*** gif压缩比例  ***/    
  75.     int bsingleframe;       /*** 0:多帧;1:单帧  ***/        
  76.     int width;              /*** gif动画的宽度  ***/    
  77.     int height;             /*** gif动画的高度  ***/
  78.     int proporwidth;        /*** gif动画压缩后的宽度  ***/
  79.     int proporheight;       /*** gif动画压缩后的高度  ***/    
  80. }GifInfo_t;
  81. /***************************************************************************
  82.  int LoadGif(void);
  83.  Description: 进入Gif库;
  84.  Param : NULL;
  85.  Return : 0; if OK;
  86. -1;if Error;
  87.  Date : 2003-6-9
  88.  Author : 滕永; yongt@mobilesoft.com.cn
  89. ****************************************************************************/
  90. int LoadGif(void);
  91. /***************************************************************************
  92.  int UnLoadGif(void) ;
  93.  Description: 退出Gif库
  94.  Param : NULL;
  95.  Return : 0; if OK;
  96. -1;if Error;
  97.  Date : 2003-6-9
  98.  Author : 滕永; yongt@mobilesoft.com.cn
  99. ****************************************************************************/
  100. int UnLoadGif(void);
  101. /********************************************************************
  102.  int GetGifInfo(GifInfo_t *pGifinfo)
  103.  Description:   获得gif动画的数据信息;
  104.  Param : (IN/OUT):  gif动画的数据信息;
  105.  Return : 0;if Ok;
  106.                 -1;if Error;
  107.  Date : 2003-7-21
  108.  Author : 滕永; yongt@mobilesoft.com.cn
  109. *********************************************************************/
  110. int GetGifInfo(GifInfo_t *pGifinfo);
  111. /***************************************************************************
  112.  int GIF_Verify_Legal_File(char *);  
  113.  Description: 判断输入的文件是否为gif文件类型;
  114.  Param : (IN)file;Gif文件;
  115.  Return : 1;if是Gif文件类型;
  116. 2;if不是Gif文件类型;
  117.  Date : 2003-5-20
  118.  Author : 滕永; yongt@mobilesoft.com.cn
  119. ****************************************************************************/
  120. int GIF_Verify_Legal_File(char *file);
  121. /***************************************************************************
  122.  double GetProportion(int picturewidth,int screenwidth);
  123.  Description: 获得画图比例;
  124.  Param : (IN)picturewidth,图片的宽度;
  125. (IN)screenwidth, 屏幕的宽度;
  126.  Return : double, 显示图片的比例;
  127.  Date : 2003-6-9
  128.  Author : 滕永; yongt@mobilesoft.com.cn
  129. ****************************************************************************/
  130. float tGetProportion(int picturewidth,int screenwidth);
  131. void FreeGifData(GIFData *pGifData);
  132. void FreeGifStream(GIFStream *pStream);
  133. #endif