ximamng.h
上传用户:pass2008
上传日期:2021-07-05
资源大小:3299k
文件大小:2k
源码类别:

Internet/IE编程

开发平台:

Visual C++

  1. /*
  2.  * File: ximamng.h
  3.  * Purpose: Declaration of the MNG Image Class
  4.  * Author: Davide Pizzolato - www.xdp.it
  5.  * Created: 2001
  6.  */
  7. /* ==========================================================
  8.  * CxImageMNG (c) 07/Aug/2001 Davide Pizzolato - www.xdp.it
  9.  * For conditions of distribution and use, see copyright notice in ximage.h
  10.  *
  11.  * Special thanks to Frank Haug <f.haug(at)jdm(dot)de> for suggestions and code.
  12.  *
  13.  * original mng.cpp code created by Nikolaus Brennig, November 14th, 2000. <virtualnik(at)nol(dot)at>
  14.  *
  15.  * LIBMNG Copyright (c) 2000,2001 Gerard Juyn (gerard@libmng.com)
  16.  * ==========================================================
  17.  */
  18. #if !defined(__ximaMNG_h)
  19. #define __ximaMNG_h
  20. #include "ximage.h"
  21. #if CXIMAGE_SUPPORT_MNG
  22. //#define MNG_NO_CMS
  23. #define MNG_SUPPORT_DISPLAY
  24. #define MNG_SUPPORT_READ
  25. #define MNG_SUPPORT_WRITE
  26. #define MNG_ACCESS_CHUNKS
  27. #define MNG_STORE_CHUNKS
  28. extern "C" {
  29. #include "../mng/libmng.h"
  30. #include "../mng/libmng_data.h"
  31. #include "../mng/libmng_error.h"
  32. }
  33. //unsigned long _stdcall RunMNGThread(void *lpParam);
  34. typedef struct tagmngstuff 
  35. {
  36. CxFile *file;
  37. BYTE *image;
  38. BYTE *alpha;
  39. HANDLE thread;
  40. mng_uint32 delay;
  41. mng_uint32  width;
  42. mng_uint32  height;
  43. mng_uint32  effwdt;
  44. mng_int16 bpp;
  45. mng_bool animation;
  46. mng_bool animation_enabled;
  47. float speed;
  48. long nBkgndIndex;
  49. RGBQUAD nBkgndColor;
  50. } mngstuff;
  51. class CxImageMNG: public CxImage
  52. {
  53. public:
  54. CxImageMNG();
  55. ~CxImageMNG();
  56. bool Load(const TCHAR * imageFileName);
  57. bool Decode(CxFile * hFile);
  58. bool Decode(FILE *hFile) { CxIOFile file(hFile); return Decode(&file); }
  59. #if CXIMAGE_SUPPORT_ENCODE
  60. bool Encode(CxFile * hFile);
  61. bool Encode(FILE *hFile) { CxIOFile file(hFile); return Encode(&file); }
  62. bool Save(const TCHAR * imageFileName){ return CxImage::Save(imageFileName,CXIMAGE_FORMAT_MNG);}
  63. #endif // CXIMAGE_SUPPORT_ENCODE
  64. long Resume();
  65. void SetSpeed(float speed);
  66. mng_handle hmng;
  67. mngstuff mnginfo;
  68. protected:
  69. void WritePNG(mng_handle hMNG, int Frame, int FrameCount );
  70. void SetCallbacks(mng_handle mng);
  71. };
  72. #endif
  73. #endif