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