Contents Where it is from ? Where can I find the newest version ? Important notes for old version users Supported image file formats Features Files Build Additional Notes Acknowledgements !!! Please read license.txt before you use it !!! Where it is from ? ------------------------------------------------------------------- This is the second release of my image processing library. The library was started from scratch while I was in school and made efforts to get my degree. My thesis works were also build on this library. Where can I find the newest version ? ------------------------------------------------------------------- The newest version is always available at my own homepage and mirror sites http://pcvideo.yeah.net (This is a virtual name to my major site, please remember it) http://pcvideo.easthome.net http://pcvideo.tripod.com http://personal.hb.cninfo.net/~pcvideo Download from page "download.htm" if you cann't find where it is. Contact me if you find bugs or want new features: Yudong Yang yangyd@yahoo.com Important notes for old version users ------------------------------------------------------------------- Some of the names are changed due to poteintial name space conflicts with MS Windows SDK and others. The ImageDes structure is expanded to support features like alpha channel and transparency and related routine interfaces are also changed. Sorry for the inconvenient. Supported image file formats ------------------------------------------------------------------- * PNG This is based on LIBPNG . Supports many PNG's features including alpha channel and transparency and gamma. Limitations: Only binary transparency support for palette color images. 16 bits per channel color and grayscale images are truncated to 8 bits during load. Text contents are dropped. * JPEG This based on IJG'S JPEG library . Support both Color and grayscale JPEGs. * BMP Both 8 bit palette and 24 bits true color are supported. However new Win95/Nt4 bitmap features are not supported. * GIF I've write a GIF read code however distribute it is forbidden by Unisys's LZW patent. Transparent and multiframe GIFs are supported but textual informations are discarded while load. * PCX Only 8 bit palette color are supported. * TGA Only supports 24 bits RGB color formats. * TIFF Only limited 24 bits RGB color support. * Raw Data Both 8 bit grayscale and 24bits RGB color. Features ------------------------------------------------------------------- * color quantization and color to grayscale conversion. * image flatten with alpha, transparency and background support. * image drawing operations as draw line, draw pixel and advanced bitbilt operations including both alpha and transparent support. * geometry transformations as resample, rotate, flip, mirror, affine, projective and rectangler to cylinder. * filterings as blur, sharpen, median, Sobel edge... * special effects and histogram operations as mosaic, threshold, negtive, contrast expand, histogram equalization, brighten and color saturation adjust. * edge detection and binary image operation as 4-conn and 8-conn edge tracing, edge thinning, area shrink, area expand, noise reduction. Files ------------------------------------------------------------------- proc most of the codes and header files jpeg where IJG's JPEG library should be libpng where LIBPNG should be zlib the GNU zip library used by LIBPNG tools some samples and small routines that use this library util some utility routines used gif GIF import routines, please read included readme.txt before use vdubfilter a plugin interface for using some of the routines in VirtualDub (a Windows video editiong freeware) imgproc sample MSVC 6 project files Build ------------------------------------------------------------------- Most of the codes are carefully written in thread safe 32 bits ANSI C and should compile in both Windows and UNIX systems. I've write most of the comments in C++ styles and this should be fine for most modern C/C++ compilers. If this is a problem for your compiler you can convert it using a tool at http://pcvideo.yeah.net. To build the library, you must 1. Modify the file "proc/config.h" to fit your configuration. 2. Build the IJG Library following the guides included in its package 3. Build the LIBPNG and ZLIB following the guides included in their packages 4. Add all files in directory "proc" and "util" to a project and compile it. 5. Merge all in step 2,3,4 to a library file and the library build is done. 7. Compile and run the samples in "tools" to test if the library is ok. Additional Notes ------------------------------------------------------------------- Some of the image drawing routines are currently not multithread compatible -- the only side effects is just drawing using wrong colors if other threads changed them. This will be fixed if I have time. Acknowledgements ------------------------------------------------------------------- Adam Hoult (admin@daedalusd.com) added many features and helped me to fix several bugs