DLImageFactory.h

Go to the documentation of this file.
00001 #ifndef DLIMAGEFACTORY_H
00002 #define DLIMAGEFACTORY_H
00003 
00004 #include "DLImage.h"
00005 #include "DLBaseImage.h"
00006 #include "DLException.h"
00007 #include "DLSingletonDestroyer.h"
00008 #include <vector>
00009 #include <map>
00010 #include <string>
00011 using namespace std;
00012 
00013 
00016 struct dlLtstr
00017 {
00018    bool operator()(const string& s1, const string& s2) const
00019    {
00020       return s1 <  s2;
00021    }
00022 };
00023 
00061 class DLImageFactory
00062 {
00066    template <class SINGLETON> friend class DLSingletonDestroyer;
00067    private:
00068 
00070    static DLImageFactory *iFactory;
00073    static DLSingletonDestroyer<DLImageFactory> _destroyer;
00074 
00076    vector <DLBaseImage*> imageFormats;
00077 
00079    map < string, DLBaseImage*, dlLtstr > imageExtensionMap;
00080    private:
00081 
00087    DLImageFactory(void){};
00088 
00092    virtual ~DLImageFactory(void); 
00093 
00094    public:
00095 
00104    DLImage dlLoadImageAtPage(const char* filename, int pageNumber) ;
00105 
00116    DLImage dlLoadImageAtPage(const void* pMemLoc, int nSize, int pageNumber) ;
00117 
00135    DLImage dlLoadImage(const char* filename, DLBaseImage* imageType = NULL);
00136 
00153    DLImage dlLoadImage(const void* pMemLoc,const int nSize, DLBaseImage* imageType);
00154 
00166    void dlSaveImage(const DLImage& image, const char* filename, DLBaseImage* imageType = NULL);
00167 
00178    void* dlSaveImageToMem(const DLImage& image, int& nSize, DLBaseImage* imageType);
00179 
00184    void dlShowAllRegistered();
00185 
00191    vector <DLBaseImage*> dlGetRegisteredImageObjects() const {return this->imageFormats;};
00192 
00201    static void dlRegisterImageType(DLBaseImage* image);
00202 
00209    int dlGetTotalPages(void* pMemLoc, int nSize);
00210 
00216    int dlGetTotalPages(const char* filename);
00217 
00226    DLBaseImage* dlIdentifyImageType(const void* pMemLoc,const int nSize) ;
00227   
00235    DLBaseImage* dlIdentifyImageType(const char* filename) ;
00236 
00241    static DLImageFactory* dlGetInstance();
00242 
00243 };
00244 
00245 
00246 #endif // DLImageFactory_H

DOCLIB is being developed under contract by a collaboration between:
The Laboratory for Language and Media Processing
Unviersity of Maryland, College Park
and
Booz | Allen | Hamilton

All Rights Reserved, 2003-2007