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 <http://www.cdrom.com/pub/png/>.
   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 <http://www.ijg.org/>.
   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
