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

Internet/IE编程

开发平台:

Visual C++

  1. /*
  2.  * File: ximatif.h
  3.  * Purpose: TIFF Image Class Loader and Writer
  4.  */
  5. /* ==========================================================
  6.  * CxImageTIF (c) 07/Aug/2001 Davide Pizzolato - www.xdp.it
  7.  * For conditions of distribution and use, see copyright notice in ximage.h
  8.  *
  9.  * Special thanks to Troels Knakkergaard for new features, enhancements and bugfixes
  10.  *
  11.  * Special thanks to Abe <God(dot)bless(at)marihuana(dot)com> for MultiPageTIFF code.
  12.  *
  13.  * LibTIFF is:
  14.  * Copyright (c) 1988-1997 Sam Leffler
  15.  * Copyright (c) 1991-1997 Silicon Graphics, Inc.
  16.  * ==========================================================
  17.  */
  18. #if !defined(__ximatif_h)
  19. #define __ximatif_h
  20. #include "ximage.h"
  21. #if CXIMAGE_SUPPORT_TIF
  22. #include "../tiff/tiffio.h"
  23. class DLL_EXP CxImageTIF: public CxImage
  24. {
  25. public:
  26. CxImageTIF(): CxImage(CXIMAGE_FORMAT_TIF) {m_tif2=NULL; m_multipage=false; m_pages=0;}
  27. ~CxImageTIF();
  28. TIFF* TIFFOpenEx(CxFile * hFile);
  29. void  TIFFCloseEx(TIFF* tif);
  30. // bool Load(const TCHAR * imageFileName){ return CxImage::Load(imageFileName,CXIMAGE_FORMAT_TIF);}
  31. // bool Save(const TCHAR * imageFileName){ return CxImage::Save(imageFileName,CXIMAGE_FORMAT_TIF);}
  32. bool Decode(CxFile * hFile);
  33. bool Decode(FILE *hFile) { CxIOFile file(hFile); return Decode(&file); }
  34. #if CXIMAGE_SUPPORT_ENCODE
  35. bool Encode(CxFile * hFile, bool bAppend=false);
  36. bool Encode(CxFile * hFile, CxImage ** pImages, int pagecount);
  37. bool Encode(FILE *hFile, bool bAppend=false) { CxIOFile file(hFile); return Encode(&file,bAppend); }
  38. bool Encode(FILE *hFile, CxImage ** pImages, int pagecount)
  39. { CxIOFile file(hFile); return Encode(&file, pImages, pagecount); }
  40. #endif // CXIMAGE_SUPPORT_ENCODE
  41. protected:
  42. void TileToStrip(uint8* out, uint8* in, uint32 rows, uint32 cols, int outskew, int inskew);
  43. bool EncodeBody(TIFF *m_tif, bool multipage=false, int page=0, int pagecount=0);
  44. TIFF *m_tif2;
  45. bool m_multipage;
  46. int  m_pages;
  47. void MoveBits( BYTE* dest, BYTE* from, int count, int bpp );
  48. void MoveBitsPal( BYTE* dest, BYTE*from, int count, int bpp, RGBQUAD* pal );
  49. };
  50. #endif
  51. #endif