<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<meta name="GENERATOR" content="Microsoft FrontPage 3.0">
<title>History</title>
</head>
<body stylesrc="indexipl.htm" bgcolor="#FFFFFF">
<h2>CxImage History</h2>
<hr>
<h3>Version 1.00, 07 - Aug - 2001</h3>
<hr>
<h3>Version 1.01, 27 - Aug - 2001</h3>
<b>Bugfixes</b>
<UL>
<LI>PNG Read/Save exceptions with non dword aligned scan lines.
<LI>Mirror() don't handle the last column. <Brian R. Zielinski>
</UL>
<b>Changes and major additions</b>
<UL>
<LI>+ GrayScale(). <TRK><br>
<LI>+ Rotate().<br>
<LI>+ Read Multiple Image for TIFFs & ICONs<br>
<LI>+ LoadResource(). <DP>
<LI>Changed GIF read implementation. Added animation handling. <TRK><br>
</UL>
<b>Project - Libraries - Demo application</b>
<ul>
<li>+ Demo: added hatched background and Print functionality. <TRK>
<li>+ Undo/Redo menu. <DP>
</ul>
<hr>
<h3>Version 1.10, 23 - Sep - 2001</h3>
<b>Bugfixes</b>
<ul>
<li> Better exception handling in CxImagePNG & CxImageBMP. <DP>
<li>Gdi resource leakage and memory corruption in CxImage(HBITMAP). <TRK>
<li>Rotate() didn't handle transparency. <TRK>
<li>Fixed TIFF saving 1 & 4 bit images. <DP>
</ul>
<b>Changes and major additions</b><br>
<ul>
<li>Extended LoadResource() to TIFF format. <DP>
<li>- Removed info.szFileName : never used, and it's not an image related information.
<TRK><br>
<li>Reduced fopen/fclose clutter. <TRK><DP>
<li>Extended constructors with "imagetype" <i>(for future use)</i>.
<TRK>
<li>Replaced GetPaletteIndex() with GetPaletteColor() : the function returns
a color, not an index.
<li>Replaced GetFileType() with GetType() : to avoid confusion with the file
extension.
<li>GrayScale() now always create an 8 bit gray scale image. <DP>
<li>+ Implemented transparency in CxImage::Draw(). Now Draw() can also stretch
the image, so Stretch() became obsolete. <TRK>
<li>+ CxImage(FILE * stream) constructor. <TRK>
<li>+ JPEG read CMYK format (adobe). <DP>
<li>+ Transparency for PNG. <DP>
<li>+ Enabled reading of RLE-compressed <TRK> and 16 & 32 bit BITFIELD
<DP> bitmaps.
<li>+ Unicode version for ReadFile/SaveFile.
<li>+ MakeBitmap() function <Kurt Diesch>
<li>+ JPEG can save 8 bit GrayScale images. <DP><br>
</ul>
<b>Project - Libraries - Demo application</b>
<ul>
<li>Removed MFC-dependency (#include <afxwin.h>) <TRK>
<li>Changed jconfig.h with HAVE_BOOLEAN stuff <TRK>
<li>+ new tiff_c.c module in theTIFF library, for straight C Runtime Library
file functions. <TRK>
<li>Demo : now using Project|Dependencies.
<li>+ Zoomin/Zoomout menu <DP>
<li>+ Capture window menu <DP>
<li>+ Acquire from TWAIN source <DP>
</ul>
<hr>
<h3>Version 1.23, 15 - Oct - 2001</h3>
<b>Bugfixes</b>
<ul>
<li> Fixed PNG reading interlaced and gray scale images. <DP>
<li>Fixed PNG saving 1 & 4 bit images. <DP>
<li>Fixed GIF saving and reading 1 & 4 bit images. <DP>
<li>Added safe checks in CImageIterator::SetRow() <DP> and in CxImagePNG::Decode()
<yeonjun jeong>
</ul>
<b>Changes and major additions</b><br>
<ul>
<li>+ Basic MNG encoder/decoder.
<li>+ Get/SetTransIndex(): on the fly transparency for indexed images (1, 4,
8 bpp) <TRK>
<li>+ Get/SetTransColor(): on the fly transparency for RGB images (24 bpp) <DP>
<li>+ GIF encoder saves transparency information <TRK>
<li>+ PNG encoder saves transparency information <DP>
<li>+ SwapIndex() function for palette operations with transparency <DP>
<li>+ Resample() function <Steve McMahon>
<li>+ Get/SetEscape() to quit the slow loops.
<li>+ Get/SetProgress() to monitor the slow loops.
<li>+ SetStdPalette() to create a standard palette for 256 and 16 colors images.
<li>+ DecreaseBpp()/IncreaseBpp().<br>
</ul>
<b>Project - Libraries - Demo application</b>
<ul>
<li>Transparency handling menu <DP>
<li>Fixed cast problem in Jcapimin.c, comparing JPEG_LIB_VERSION <F. Livraghi>
<li>Resample, DecreaseBpp, IncreaseBpp menu <DP>
<li>Stopwatch and ProgressBar in the status bar <DP>
<li>Image computations are in a separate thread <DP>
<li>Added CQuantizer class to implement the color reduction with the octree
algorithm. <Jeff Prosise>
</ul>
<hr>
<H3>Version 1.25, 28 - Oct - 2001</H3>
<b>Bugfixes</b>
<ul>
<li> Added support for 32 bit PNGs and 16 bit TIFs</li>
</ul>
<hr>
<h3>Version 2.00, 29 - Dec - 2001</h3>
<b>Bugfixes</b>
<ul>
<li>fixed deadlock in GIF decoder
<li>PNG decoder reads 16 bit grayscale images.
<li>TIF decoder reads 4 bit grayscale images.
<li>fixed bug in CreateFromHBITMAP() <Wil Stark>
<li>Fixed PNG encoder bug, buffer allocation error with BW images.<br>
</ul>
<b>Changes and major additions</b>
<ul>
<li>MNG decoder handles the background information.<br>
<li>TIF encoder now uses COMPRESSION_JPEG for 24 bit images.<br>
<li>LoadResource(): added new parameter to work with dlls. <Ayatu>
<li>LoadResource() now works with network applications. <Ayatu>
<li>Changed CxImage() constructors, Copy() and Transfer() interface and implementation
<Kirk>
<li>Added CreateFromHANDLE() and CreateFromHBITMAP() in place of the old constructors.
<li>Automatic file format recognition in ReadFile() <Patrick Hoffmann>
<li>Faster Draw() implementation for transparent images. (Thanks to Paul Reynolds
and Ron Gery)
<li>New Get/SetJpegQuality() for JPEG and TIF encoders.
<li>New Get/SetXDPI(), Get/SetYDPI() for BMP and TIF formats.
<li>New Dither() function, with Floyd-Steinberg or Ordered-Dithering BW conversion
(Thanks to Kenny Hoff and Steve McMahon)
<li>New functions : Crop(), SplitRGB(), SplitYUV(), SplitHSL().
<li>New functions : Colorize(), Light(), Threshold(), Mean(), Filter(), Dilate(),
Erode().<br>
</ul>
<b>Project - Libraries - Demo application</b>
<ul>
<li>Removed bad pixels from "Capture Window" <Qiang><br>
<li>New menus: Blur, Soften, Edge, Sharpen, Emboss, Dilate, Erode, Threshold,
Dither, ...<br>
</ul>
<hr>
<h3>Version 3.00, 20 - Jan - 2002</h3>
<b>Bugfixes</b>
<ul>
<li>fixed HSLtoRGB() conversion <F. Livraghi >
<li>CxImagePNG: fixed deallocation bug in Encode() <Ranger>
<li>CxImagePNG: now reads 2 bpp images.
<li>CxImageBMP: fixed DPI rounding error <DIH>
<li>CreateFromHANDLE now handles the DPI information <Jeff Hu><br>
</ul>
<b>Changes and major additions</b>
<ul>
<li>New pixel ALPHA channel, overall opacity. (14 dedicated functions)
<li>New Alpha Palette. (5 dedicated functions)
<li>New Region Selection (rectangle, ellipse, polygon - 11 dedicated functions).
<li>New "copypixels", "copyselection", "copyalpha"
options for constructor/Copy()
<li>New "errordiffusion" option for DecreasBPP().
<li>New Draw() implementation with support for alpha channel, alpha palette,
opacity, transparency.
<li>New PCX decoder CxImagePCX
<li>New TGA decoder/encoder CxImageTGA (with alpha channel)
<li>High resolution shrink for Resample() <Henrik Stellmann>
<li>CxImagePNG now reads/saves the transparency information (palette and alpha
channel) <br>
</ul>
<b>Project - Libraries - Demo application</b>
<ul>
<li>Updated PNG library: Libpng version 1.2.1
<li>Free-hand selection with the left mouse button.<br>
</ul>
<hr>
<h3></h3>
<h3>Version 3.02, 24 - Jan - 2002</h3>
<b>Bugfixes</b>
<ul>
<li> CxImagePNG: fixed allocation bug in Decode()</li>
<li>CxImagePNG: cast error saving 8 bpp images.</li>
</ul>
<hr>
<h3></h3>
<h3>Version 3.09, 21 - Feb - 2002</h3>
<b>Bugfixes</b>
<ul>
<li> Rotation() and Resample() handle the alpha channel. <MTA></li>
<li>CxImagePNG: Encode() merges the transparent color with the alpha channel.</li>
<li>Fixed exceptions and leaks in Draw() <RG></li>
<li>CxImageBMP now reads 32 bpp BITFIELD images.</li>
<li>Decode() correctly loads multipage ICO and TIF files. <REC></li>
</ul>
<hr>
<h3></h3>
<h3>Version 3.21, 11 - Mar - 2002</h3>
<b>Bugfixes</b>
<ul>
<li>Fixed memory leakage in CxImagePNG::Encode() <Rob Cass>.</li>
<li>Fixed CxImageICO::Decode() problem with 16 colors icons <Rogier>.</li>
</ul>
<b>Changes and major additions</b>
<ul>
<li>CxImageICO reads/saves icons with transparent pixels.</li>
<li>CxImageTIF::Decode() now takes care of the orientation tag.</li>
<li>New RotateLeft(), RotateRight(), Rotate180() functions <MKVY>.</li>
<li>Faster Draw() implementation for images with transparency <DJT>.</li>
</ul>
<b>Project - Libraries - Demo application</b>
<ul>
<li>Updated BCMenu: version 3.01.
<li>Replaced CreateThread() with _beginthread() to avoid small memory leaks.
</ul>
<hr>
<h3></h3>
<h3>Version 4.00, 12 - May - 2002</h3>
<b>Bugfixes</b>
<ul>
<li>Fixed JPEG error handler <CSC></li>
<li>Fixed _tiffSizeProc in tif_c.c to load images with missing stripcount.</li>
<li>Transformations preserve info.dwType perameter <CSC></li>
<li>Createfromhandle() bugfix for 32bitfield images <JA></li>
<li>GetPixelColor bugfix when the coordinates are in the outside of the image
<Mpwolski></li>
</ul>
<b>Changes and major additions</b>
<ul>
<li>New CxFile class to read/write memory files and disk files.</li>
<li>Added support for Read/Write 32bpp TIFFs with apha channel.</li>
<li>New methods : Mix() <Mpwolski>, Destroy(), IsIndexed()</li>
<li>Read/Write support for Multipage TIFF <Abe></li>
<li>Read/Write support for Animated GIF (gif89a), with comment, loops and disposal
method</li>
<li>Added xOffset and yOffset in CxImage::info</li>
<li>Changed names : ReadFile -> Load ; SaveFile -> Save</li>
<li>LoadResource uses CxFile</li>
</ul>
<b>Project - Libraries - Demo application</b>
<ul>
<li>Updated BCMenu: version 3.03.
<li>LibTiff : enabled alpha (tif_getimage.c;Ln:212), enabled ZIP_SUPPORT
<li>Pane view function with "shift+Lbutton"
<li>Updated LibTiff to 3.5.7
<li>New URL download dialog; WebGrab class by Chris Maunder
</ul>
<hr>
<h3></h3>
<h3>Version 4.01, 15 - May - 2002</h3>
<b>Changes and major additions</b>
<ul>
<li>Added some constructors and Encode()/Decode() methods to work with memory
buffers directly.</li>
</ul>
<b>Project - Libraries - Demo application</b>
<ul>
<li>Changed URL download dialog.
</ul>
<hr>
<h3></h3>
<h3>Version 4.10, 01 - Jun - 2002</h3>
<b>Bugfixes</b>
<ul>
<li>Fixed PNG error handler.</li>
<li>Fixed TGA decoder for RLE encoded pictures with alpha channel <Ole Lange>
and 15 bit pictures.</li>
<li>Fixed BMP decoder for 32 bit images.</li>
</ul>
<b>Changes and major additions</b>
<ul>
<li>Added Read/Write support for 24 and 32 bit ICONs.
<li>new bAppend parameter in CxImageTIF::Encode() for better multi page TIF
creation. <Abe>
</ul>
<b>Project - Libraries - Demo application</b>
<ul>
<li>Updated zlib to 1.1.4.<Ayatu>
<li>Added OJPEG_SUPPORT (not for Wang).
</ul>
<hr>
<h3></h3>
<h3>Version 5.00, 23 - Aug - 2002</h3>
<b>Bugfixes</b>
<ul>
<li>CxImageTIF::Decode : fixed default orientation. <vho></li>
<li>CxImageTIF::Encode saves 1bpp always with PHOTOMETRIC_MINISWHITE <abe></li>
<li>CxImageJPG::Encode : fixed jpg encoder for memory files.</li>
<li>CxImageICO::Encode : fixed problem with 4bpp images with transparency.</li>
<li>CxImagePNG::Encode : fixed problem when info.bColorType was wrong <Kwyshell></li>
<li>removed info.bColorType and changed GetColorType() implementation.</li>
<li>CxImageBMP::Decode handles TopDown Bitmaps <Flanders>, small bugfix
<CSC></li>
<li>CxImageTIF::Encode : TIFFSetField(m_tif, TIFFTAG_ROWSPERSTRIP, TIFFDefaultStripSize(m_tif,
-1)); gives better compression <REC></li>
<li>Load( ) returns the correct info.nNumFrame when info.nFrame<0.</li>
<li>removed bug in tif_xfile.c when encoding memory files.</li>
<li>CxImageBMP::Decode loads correctly OS2 bmps.</li>
<li> bugfix in Resample( ) when (newx==width && newy==height)</li>
<li> better operator= definition <Anatoly Ivasyuk></li>
</ul>
<b>Changes and major additions</b>
<ul>
<li>new formats: WBMP, WMF - EMF <vho>, JBIG, JPEG2000.
<li>new full codec for PCX, with support for RGBA images.
<li>new methods: GetVersion, IsTransparent <vho>, ShiftRGB, Median, Gamma,
Noise, Combine, FFT, Repair, AlphaSplit
<li>added r/w support for 8bpp TIFFs with alpha layer.
<li>added support for TrueColor, RLE and uncompressed GIFs.
<li>added CXIMAGEJPG_SUPPORT_EXIF for JPGs.
<li>new switches: CXIMAGE_SUPPORT_DECODE, CXIMAGE_SUPPORT_ENCODE,<br>
CXIMAGE_SUPPORT_WINDOWS, CXIMAGE_SUPPORT_WINCE <T.Peck>
<li>SetEscape can abort the codecs loops <vho>.
<li>added ximadefs.h to adjust automatically the switches.
<li>the codecs for ICO, PNG, TGA and TIF work also with CXIMAGE_SUPPORT_ALPHA
= 0 <vho>
<li>added DPI information support for jpeg <Koray Geçici>
<li>new CxFile CxMemFile CxIOFile implementations <CSC>
<li>MakeBitmap( ) creates a real DIB if HDC == 0 <CSC>
<li>Draw( ) added pClipRect parameter.
<li>CxImageTIF::Decode : re-enabled error handler for debugging;
</ul>
<b>Project - Libraries - Demo application</b>
<ul>
<li>Zlib : replaced zlib.rc and zlib.def <ayatu>.
<li>Demo: new tools, histogram, palette, replaced xshadebutton with xtargetbutton.
<li>Updated LIBPNG to 1.2.4
<li>LibTIFF::tiff_read.c::ln188: commented to decode strange images, it's not
dangerous.
<li>LibTIFF small changes to compile under linux (tiff_xfile.cpp, tiff_jpeg.c,
tiff_ojpeg.c, tiffiop.h)
<li> LibJPEG : small changes to compile under linux (jmorecfg.h)
<li>Added project for DLL build and console applications.
</ul>
<hr>
<h3>PEOPLE:</h3>
<DP> : Davide Pizzolato <ing(dot)davide(dot)pizzolato(at)libero(dot)it><br>
<TRK> : Troels Knakkergaard <TRK(at)lyngsoe(dot)com><br>
<Brian R(dot) Zielinski> : Brian R(dot) Zielinski <brianz(at)digital(dot)risserimaging(dot)com><br>
<Kurt Diesch> : Kurt Diesch <kdiesch(at)enjoysoft(dot)com> <br>
<F. Livraghi > : Francesco Livraghi <info(at)ceccoing(dot)it><br>
<Steve McMahon> : Steve McMahon <steve(at)dogma(dot)demon(dot)co(dot)uk><br>
<Ayatu> : Tuncer M(dot) Ayaz <ayatu(at)gmx(dot)de><br>
<Kirk> : Kirk Korver <kirk(at)the-right-stuff(dot)com><br>
<Qiang> : Qiang Liu <liuq(at)ee(dot)washington(dot)edu><br>
<Patrick Hoffmann> : Patrick Hoffmann <hoffmann(at)novacom(dot)net><br>
<Wil Stark> : Wil Stark <wil_stark(at)agilent(dot)com><br>
<DIH> : Dominic I. Holmes <DIH(dot)Junk(at)DigitalFormation(dot)com><br>
<Henrik Stellmann> : Henrik Stellmann <henrik(dot)stellmann(at)volleynet(dot)de><br>
<Ranger> : Ranger <RangerMail(at)mail(dot)ru><br>
<Jeff Hu> : Jeff Hu <v120160(at)yahoo(dot)com(dot)tw> <br>
<MTA> : Matthew Armstrong <ArmstroM(at)faro(dot)com><br>
<REC> : Robert Edward Caldecott <rec(at)kerridge(dot)com><br>
<RG> : Roberto Guerzoni <r(dot)guerzoni(at)infomotion(dot)mo(dot)it>
<br>
<MKVY> : Murali Krishna V Yelchuru <muralikrishnayv(at)yahoo(dot)com><br>
<Rogier> Rogier Reedijk <xs4free(at)wish(dot)net> <br>
<Rob Cass> : Rob Cass <rcass(at)compusult(dot)nf(dot)ca><br>
<DJT> : Dave Turnbull (Camel) <dave(at)camel(dot)co(dot)uk><br>
<JA> : Jörgen Alfredsson <jorgen(dot)alfredsson(at)kamera(dot)com>
<br>
<Mpwolski> : Mwolski <mpwolski(at)hotmail(dot)com><br>
<CSC> : Chris Shearer Cooper <cscooper(at)frii(dot)com><br>
<Abe> : Abe <God(dot)bless(at)marihuana(dot)com> <br>
<Ole Lange> : Ole Lange <ol(at)ams-soft(dot)de><br>
<vho> : Volker Horch <vhorch(at)gmx(dot)de><br>
<Kwyshell> : Kwyshell <kwyshell(at)yahoo(dot)com(dot)tw> <br>
<Flanders> : Flanders <flanders(at)2moors(dot)freeserve(dot)co(dot)uk>
<br>
<Anatoly Ivasyuk> : Anatoly Ivasyuk <aivasyuk(at)dtlink(dot)com><br>
<T.Peck> : T. Peck <tpeck(at)roundwave(dot)com><br>
<Koray Geçici> : Koray Geçici <kgecici(at)tam(dot)net(dot)tr>)
<br>
<p>
<hr>
<p align="right"><font size="2"><em>Updated 23. aug 2002 00:00 by Davide Pizzolato
<ing(.)davide(.)pizzolato(at)libero(.)it></em></font></p>
<!--webbot bot="Include" endspan i-checksum="2469" -->
</body>
</html>