00001 #ifndef _AnImageReader_H
00002 #define _AnImageReader_H
00003 
00004 
00005 
00024 #include "AnImage.hpp"
00025 
00026 class  AnImageReader
00027 {
00028 protected:
00029 
00030 #ifdef _WINDOWS_USED_
00031  AnImage* readBitmapPalette8(const char* filename);
00032  AnImage* readBitmapPaletteRLE8(const char* filename); 
00033 #endif
00034 
00035 
00036 AnImage*        readByteImage(const char* filename);
00037 AnImage*        readShortImage(const char* filename){return 0;}
00038 AnImage*        readUShortImage(const char* filename){return 0;}
00039 AnImage*        readIntegerImage(const char* filename);
00040 
00041 AnImage*        readRGBImage(const char* filename);             
00042 
00043 
00044 AnImage*        readByteImage(const char* filename, int reductionScale);
00045 AnImage*        readShortImage(const char* filename, int reductionScale){return 0;}
00046 AnImage*        readUShortImage(const char* filename, int reductionScale){return 0;}
00047 AnImage*        readIntegerImage(const char* filename, int reductionScale);
00048 
00049 AnImage*        readRGBImage(const char* filename, int reductionScale);         
00050 
00051 
00052 bool isJpeg(const char* filename);
00053 bool isTiff(const char* filename);
00054 bool isBmp(const char* filename);
00055 bool isPgm(const char* filename);
00056 bool isPpm(const char* filename);
00057 bool isPnm(const char* filename);                               
00058 bool isPam(const char* filename);                               
00059 bool isTga(const char* filename){ return false; }
00060 bool isPng(const char* filename){ return false; }
00061 
00062 public:
00063 AnImageReader(){}
00064 ~AnImageReader(){}
00065 
00066 AnImage* readImage(const char* filename);
00067 AnImage* readImage(const char* filename, int reductionScale);
00068 
00069 bool readParams(const char* filename, int* width, int* height); 
00070 bool readParams(const char* filename, int* width, int* height, int* channels);                  
00071 bool readParams(const char* filename, int* width, int* height, int* channels, 
00072                                 int* xResolution, int* yResolution);                            
00073 
00074 void output();
00075 
00076 };
00077 
00078 #endif