00001 #ifndef _AnImageWriter_H 00002 #define _AnImageWriter_H 00003 00023 #include "AnImage.hpp" 00024 00025 class AnImageWriter 00026 { 00027 protected: 00028 00029 #ifdef _WINDOWS_USED_ 00030 int rle8Type1(unsigned char* dataImage, int originSize, int position, int scount, unsigned char val); 00031 int rle8Type2(unsigned char* dataImage, int originSize, int position, int scount, unsigned char* line, 00032 int pstart, int pend ); 00033 int rle8Type2EOL(unsigned char* dataImage, int originSize, int position); 00034 int rle8Type2EOBmp(unsigned char* dataImage, int originSize, int position); 00035 00036 void writeBitmapGreyRLE8(const char* filename, AnImage* image); 00037 void writeBitmap8(const char* filename, AnImage* image); 00038 void writeBitmap24(const char* filename, AnImage* image); 00039 00040 void writeBitmap8ColorRLE8(const char* filename, AnImage* image); 00041 void writeBitmap8Color(const char* filename, AnImage* image); 00042 #endif 00043 00044 #ifdef _TIFF_USED_ 00045 void writeTiff8(const char* filename, AnImage* image); 00046 void writeTiff24(const char* filename, AnImage* image); 00047 00048 void writeTiff16(const char* filename, AnImage* image); 00049 void writeTiff48(const char* filename, AnImage* image); 00050 #endif 00051 00052 void writeByteImage(const char* filename, AnImage* image); 00053 void writeShortImage(const char* filename, AnImage* image); 00054 void writeUShortImage(const char* filename, AnImage* image); 00055 void writeIntegerImage(const char* filename, AnImage* image); 00056 00057 void writeRGBImage(const char* filename, AnImage* image); // 24 bit image 00058 00059 00060 bool isJpeg(const char* filename); 00061 bool isBmp(const char* filename); 00062 bool isTiff(const char* filename); 00063 bool isPgm(const char* filename); 00064 bool isPpm(const char* filename); 00065 bool isPnm(const char* filename); // any pbm or ppm (P5 or P6) 00066 bool isPam(const char* filename); // support multichannel grey/color 00067 bool isTga(const char* filename){ return false; } 00068 bool isPng(const char* filename){ return false; } 00069 00070 00071 public: 00072 AnImageWriter(){} 00073 ~AnImageWriter(){} 00074 00075 void writeImage(const char* filename, AnImage* image); 00076 00077 00078 void output(); 00079 }; 00080 00081 #endif