dibtiff.h
上传用户:lbr_007
上传日期:2019-05-31
资源大小:282k
文件大小:2k
源码类别:

传真(Fax)编程

开发平台:

Visual C++

  1. // dibtiff.h
  2. //
  3. #ifndef DIB_TIFF_IMG_NCLUDE_H__
  4. #define DIB_TIFF_IMG_NCLUDE_H__
  5. #include "dibsect.h"
  6. #include <string>
  7. #include <arraycontainer.h>
  8. class TIFFSubImage {
  9. void InitImg(void)
  10. {
  11. m_width = m_height = m_ndx = m_bpp = 0;
  12. m_name = "";
  13. }
  14. protected:
  15. UINT32 m_width;
  16. UINT32 m_height;
  17. UINT32 m_ndx;
  18. UINT32 m_bpp;
  19. std::string m_name;
  20. public:
  21. TIFFSubImage(void){ InitImg();}
  22. TIFFSubImage(const TIFFSubImage& img){ InitImg(); Copy(img);}
  23. TIFFSubImage(UINT32 w, UINT32 h, UINT32 ndx, UINT32 bpp, const char * name)
  24. {
  25. CreateSubImage(w,h,ndx,bpp,name);
  26. }
  27. ~TIFFSubImage(void){}
  28. UINT32 GetWidth(void)const{ return m_width;}
  29. UINT32 GetHeight(void)const{ return m_height;}
  30. UINT32 GetIndex(void)const{ return m_ndx;}
  31. UINT32 GetBitsPerSample(void)const{ return m_bpp;}
  32. const char * GetName(void)const{ return m_name.c_str();}
  33. void CreateSubImage(UINT32 w, UINT32 h, UINT32 ndx, UINT32 bpp, const char * name)
  34. {
  35. if ((w > 0) && (h > 0))
  36. {
  37. m_width = w;
  38. m_height = h;
  39. m_ndx = ndx;
  40. m_bpp = bpp;
  41. m_name = name;
  42. }
  43. }
  44. void Copy(const TIFFSubImage& img)
  45. {
  46. InitImg();
  47. if (img.IsCreated())
  48. {
  49. m_width = img.GetWidth();
  50. m_height = img.GetHeight();
  51. m_ndx = img.GetIndex();
  52. m_bpp = img.GetBitsPerSample();
  53. m_name = img.GetName();
  54. }
  55. }
  56. TIFFSubImage& operator = (const TIFFSubImage& img)
  57. {
  58. Copy(img);
  59. return *this;
  60. }
  61. bool IsCreated(void)const{ return (m_width>0);}
  62. };
  63. int OpenTIFF2DIB(const char * filename, DIBSection& dib, int directory = 0);
  64. int SaveDIB2TIFF(const char * output_file, DIBSection& dib);
  65. int OpenBigTIFF2DIB(const char * lpFileName, DIBSection& dib, int directory = 0);
  66. int ReadTIFFDirectories(const char * filename, ArrayContainer<TIFFSubImage>& images);
  67. void ConvertToPDF(const char * tiffName, const char * pdfName);
  68. void GetTIFFProperties(const char * tiffName, UINT32 subImage,
  69.    ArrayContainer<std::string>& properties);
  70. bool ReadGeoInfo(const char * filename, GEORef& gr);
  71. #endif