00001 #ifndef _DLPPMIMAGE_H_ 00002 #define _DLPPMIMAGE_H_ 00003 00004 #include "DLImage.h" 00005 #include "DLBaseImage.h" 00006 #include "DLLogger.h" 00007 #include "DLSingletonDestroyer.h" 00014 class DLPPMImage : public DLBaseImage 00015 { 00019 template <class SINGLETON> friend class DLSingletonDestroyer; 00020 private: 00021 00025 DLPPMImage(); 00026 00028 static DLPPMImage* ppmImageReader; 00031 static DLSingletonDestroyer<DLPPMImage> _destroyer; 00032 00034 const static int DL_PPM_MAX_LINE_LENGTH = 256; 00035 00036 protected: 00040 virtual ~DLPPMImage(){}; 00041 00042 public: 00043 00044 00045 00047 static DLPPMImage * createImageReader(); 00048 00049 00055 void dlLoadImage(const char* filename, DLImage& image); 00056 00063 DLImage dlLoadImage(const void* pMemLoc, int nSize); 00064 00070 DLImage dlLoadImage(const char* filename); 00071 00079 DLImage dlLoadImageAtPage(const char* filename, int pageNumber); 00080 00089 DLImage dlLoadImageAtPage(const void* pMemLoc, int nSize, int pageNumber); 00090 00096 void dlSaveImage(const char* filename, const DLImage& dlimage); 00097 00105 void* dlSaveImageToMem( int& nSize, const DLImage& dlimage); 00106 00113 bool dlSupportImageFile(const char* filename); 00114 00122 bool dlSupportImageBuffer(const void* pMemLoc, int size); 00123 00130 int dlGetTotalPages(void* pMemLoc, int nSize); 00131 00137 int dlGetTotalPages(const char* filename); 00138 };//end class 00139 00140 static DLPPMImage * dlPpmProcessor = DLPPMImage::createImageReader(); 00141 00142 #endif //_DLPPMIMAGE_H_