00001 #ifndef _DLPBMIMAGE_H_
00002 #define _DLPBMIMAGE_H_
00003
00004 #include "DLImage.h"
00005 #include "DLBaseImage.h"
00006 #include "DLIOStream.h"
00007 #include "DLSingletonDestroyer.h"
00014 class DLPBMImage : public DLBaseImage
00015 {
00019 template <class SINGLETON> friend class DLSingletonDestroyer;
00020 private:
00024 DLPBMImage();
00025
00027 static DLPBMImage* pbmImageReader;
00030 static DLSingletonDestroyer<DLPBMImage> _destroyer;
00031
00032 protected:
00036 virtual ~DLPBMImage();
00037
00045 DLImage dlLoadImage(DLIOStream &dlStream);
00046
00052 void dlSaveImage(DLIOStream &dlStream, const DLImage& dlimage);
00053
00054 public:
00056 static DLPBMImage * createImageReader();
00057
00058
00065 void dlLoadImage(const char* filename, DLImage& dlimage);
00066
00072 DLImage dlLoadImage(const char* filename);
00073
00080 DLImage dlLoadImage(const void* pMemLoc, int nSize);
00081
00089 DLImage dlLoadImageAtPage(const char* filename, int pageNumber);
00090
00099 DLImage dlLoadImageAtPage(const void* pMemLoc, int nSize, int pageNumber);
00100
00106 void dlSaveImage(const char* filename, const DLImage& dlimage);
00107
00114 void* dlSaveImageToMem(int& nSize, const DLImage &dlimage);
00115
00122 bool dlSupportImageFile(const char* filename);
00123
00131 bool dlSupportImageBuffer(const void* pMemLoc, int size);
00132
00139 int dlGetTotalPages(void* pMemLoc, int nSize);
00140
00146 int dlGetTotalPages(const char* filename);
00147 };
00148
00149 static DLPBMImage * dlPbmProcessor = DLPBMImage::createImageReader();
00150
00151 #endif //_DLPBMIMAGE_H_
00152
00153