/* -*- mode: c++ -*- */ #ifndef __imgPROCESS__ #define __imgPROCESS__ #include #include #include #include #include #include "imgDisplay.h" #define ERRORSTR_LENGTH 512 class imgProcess { friend class imgDisplay; public: // Constructor imgProcess(); imgProcess(int width, int height, short channels=3); imgProcess(imgProcess *image); imgProcess(ilImage *image); // Destructor ~imgProcess(); // Statistik int getWidth(); int getHeight(); int getChannels(); const char *getImageFormatName(); // File i/o short load(int fd); short load(const char *filename); short load(int fd, const char *filename); short save(int fd, const char *format); short save(const char *filename, const char *format); short save(int fd, const char *filename, const char *format); // manipulator short copyTile(int destX, int destY, int width, int height, imgProcess *srcImage, int srcX, int srcY); short add(imgProcess *addImg, double bias=.0); short setPixel(int x, int y, char r, char g, char b, char a=0); // Video short getVideoSnapshot(); // Filter short rotateZoom(float angle, float zoomX=1.0, float zoomY=1.0, unsigned short resampleType=ilNearNb); short blur(float blur=1.0, int width=5, int height=5,double biasValue=0., unsigned short edgeMode=ilPadSrc); short sharp(float sharpness=.5, float radius=1.5, unsigned short edgeMode=ilPadSrc); short compass(float radius, double biasVal=0., int kernSize=3, unsigned short edgeMode=ilPadSrc); short laplace(double biasVal=0., unsigned short edgeMode=ilPadSrc, int kernSize=1); short edgeDetection(double biasVal=0., unsigned short edgeMode=ilPadSrc); short blendImg(imgProcess *image, float alpha); short blendImg(imgProcess *image, imgProcess *alphaimg, ilCompose compose=ilAplusB); // Error handling void printError(); char *getErrorString(); ilStatus getStatus(); void setClient(short st); private: void common_init(ilImage *image); void setError(ilStatus status); void setError(iflStatus status); void setError(ilStatus status, const char *str); void deleteQue(); static ilImage* copyImg(ilImage *src, iflColorModel model=iflRGBA); ilImage *_image; vector _que; char *_imageFormat; char _error[ERRORSTR_LENGTH]; ilStatus _errno; // il bug .. short _client; }; #endif