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

Internet/IE编程

开发平台:

Visual C++

  1. /*
  2.  * File: ximatga.h
  3.  * Purpose: TARGA Image Class Loader and Writer
  4.  */
  5. /* ==========================================================
  6.  * CxImageTGA (c) 05/Jan/2002 Davide Pizzolato - www.xdp.it
  7.  * For conditions of distribution and use, see copyright notice in ximage.h
  8.  *
  9.  * Parts of the code come from Paintlib : Copyright (c) 1996-1998 Ulrich von Zadow
  10.  * ==========================================================
  11.  */
  12. #if !defined(__ximaTGA_h)
  13. #define __ximaTGA_h
  14. #include "ximage.h"
  15. #if CXIMAGE_SUPPORT_TGA
  16. class CxImageTGA: public CxImage
  17. {
  18. #pragma pack(1)
  19. typedef struct tagTgaHeader
  20. {
  21.     BYTE   IdLength;            // Image ID Field Length
  22.     BYTE   CmapType;            // Color Map Type
  23.     BYTE   ImageType;           // Image Type
  24.     WORD   CmapIndex;           // First Entry Index
  25.     WORD   CmapLength;          // Color Map Length
  26.     BYTE   CmapEntrySize;       // Color Map Entry Size
  27.     WORD   X_Origin;            // X-origin of Image
  28.     WORD   Y_Origin;            // Y-origin of Image
  29.     WORD   ImageWidth;          // Image Width
  30.     WORD   ImageHeight;         // Image Height
  31.     BYTE   PixelDepth;          // Pixel Depth
  32.     BYTE   ImagDesc;            // Image Descriptor
  33. } TGAHEADER;
  34. #pragma pack()
  35. public:
  36. CxImageTGA(): CxImage(CXIMAGE_FORMAT_TGA) {}
  37. // bool Load(const TCHAR * imageFileName){ return CxImage::Load(imageFileName,CXIMAGE_FORMAT_TGA);}
  38. // bool Save(const TCHAR * imageFileName){ return CxImage::Save(imageFileName,CXIMAGE_FORMAT_TGA);}
  39. bool Decode(CxFile * hFile);
  40. bool Decode(FILE *hFile) { CxIOFile file(hFile); return Decode(&file); }
  41. #if CXIMAGE_SUPPORT_ENCODE
  42. bool Encode(CxFile * hFile);
  43. bool Encode(FILE *hFile) { CxIOFile file(hFile); return Encode(&file); }
  44. #endif // CXIMAGE_SUPPORT_ENCODE
  45. protected:
  46. BYTE ExpandCompressedLine(BYTE* pDest,TGAHEADER* ptgaHead,CxFile *hFile,int width, int y, BYTE rleLeftover);
  47. void ExpandUncompressedLine(BYTE* pDest,TGAHEADER* ptgaHead,CxFile *hFile,int width, int y, int xoffset);
  48. void tga_toh(TGAHEADER* p);
  49. };
  50. #endif
  51. #endif