00001 #ifndef _DLBMPIMAGE_H_
00002 #define _DLBMPIMAGE_H_
00003
00004 #include "DLImage.h"
00005 #include "DLBaseImage.h"
00006 #include "DLIOStream.h"
00007 #include "DLSingletonDestroyer.h"
00015 class DLBMPImage : public DLBaseImage
00016 {
00020 template <class SINGLETON> friend class DLSingletonDestroyer;
00021 private:
00025 DLBMPImage();
00026
00028 static DLBMPImage* bmpImageReader;
00031 static DLSingletonDestroyer<DLBMPImage> _destroyer;
00032
00033 protected:
00037 virtual ~DLBMPImage();
00038
00046 DLImage dlLoadImage(DLIOStream &dlStream);
00047
00053 void dlSaveImage(DLIOStream &dlStream, const DLImage& dlimage);
00054
00055 public:
00057 static DLBMPImage * createImageReader();
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 DLBMPImage * dlBmpProcessor = DLBMPImage::createImageReader();
00150
00151 #endif //_DLBMPIMAGE_H_
00152
00153