DLPNGImage.h

Go to the documentation of this file.
00001 #ifndef _DLPNGIMAGE_H_
00002 #define _DLPNGIMAGE_H_
00003 
00004 #include "DLImage.h"
00005 #include "DLBaseImage.h"
00006 #include "DLConst.h"
00007 #include "png.h"
00008 #include "DLSingletonDestroyer.h"
00010 void dlPNGWarning ( png_structp png_ptr, png_const_charp warning_msg );
00019 class DLPNGImage : public DLBaseImage
00020 {
00024    template <class SINGLETON> friend class DLSingletonDestroyer;
00025    private:
00029    DLPNGImage();
00030    
00032    static DLPNGImage* pngImageReader;
00035    static DLSingletonDestroyer<DLPNGImage> _destroyer;
00036 
00037    protected:
00041    virtual ~DLPNGImage();
00042    public:
00043 
00045    static void user_read_data(png_structp png_ptr, png_bytep data, png_size_t length);
00051    static DLPNGImage * createImageReader();
00052 
00058    DLImage dlLoadImage(FILE* fp);
00059 
00065    void dlLoadImage(const char* filename, DLImage &image);
00066 
00073    DLImage dlLoadImage(const void* pMemLoc, int nSize);
00074 
00080    DLImage dlLoadImage(const char* filename);
00081 
00089    DLImage dlLoadImageAtPage(const char* filename, int pageNumber);
00090 
00099    DLImage dlLoadImageAtPage(const void* pMemLoc, int nSize, int pageNumber);
00100 
00110    DLImage dlProcessImage(png_structp png_ptr , png_infop info_ptr);
00111 
00119    void dlSaveImage(const char* filename, const DLImage& image);
00120 
00129    static void dlSaveImage(const char* filename, const DLImage& dlimage, int PNG_COMPRESSION_TYPE);
00130 
00138    void* dlSaveImageToMem( int& nSize, const DLImage& dlimage);
00139 
00146    bool dlSupportImageFile(const char* filename);
00147 
00155    bool dlSupportImageBuffer(const void* pMemLoc, int size);
00156 
00163    int dlGetTotalPages(void* pMemLoc, int nSize);
00164 
00170    int dlGetTotalPages(const char* filename);
00171 };//end class
00172 
00173 static DLPNGImage * dlPngProcessor = DLPNGImage::createImageReader();
00174 
00175 #endif //_DLTIFFIMAGE_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