Click here to Skip to main content
15,894,740 members
Articles / Desktop Programming / ATL

An ASP Thumbnail Solution

Rate me:
Please Sign up or sign in to vote.
4.88/5 (41 votes)
19 Nov 2009CPOL6 min read 440.8K   8.1K   100  
ASP pages and free COM objects for generation of thumbnails and thumbnail views.
<!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. &lt;Brian R. Zielinski&gt; 
</UL>
<b>Changes and major additions</b> 
<UL>
  <LI>+ GrayScale(). &lt;TRK&gt;<br>
  <LI>+ Rotate().<br>
  <LI>+ Read Multiple Image for TIFFs &amp; ICONs<br>
  <LI>+ LoadResource(). &lt;DP&gt; 
  <LI>Changed GIF read implementation. Added animation handling. &lt;TRK&gt;<br>
</UL>
<b>Project - Libraries - Demo application</b> 
<ul>
  <li>+ Demo: added hatched background and Print functionality. &lt;TRK&gt; 
  <li>+ Undo/Redo menu. &lt;DP&gt; 
</ul>
<hr>
<h3>Version 1.10, 23 - Sep - 2001</h3>
<b>Bugfixes</b> 
<ul>
  <li> Better exception handling in CxImagePNG &amp; CxImageBMP. &lt;DP&gt; 
  <li>Gdi resource leakage and memory corruption in CxImage(HBITMAP). &lt;TRK&gt; 
  <li>Rotate() didn't handle transparency. &lt;TRK&gt; 
  <li>Fixed TIFF saving 1 &amp; 4 bit images. &lt;DP&gt; 
</ul>
<b>Changes and major additions</b><br>
<ul>
  <li>Extended LoadResource() to TIFF format. &lt;DP&gt; 
  <li>- Removed info.szFileName : never used, and it's not an image related information. 
    &lt;TRK&gt;<br>
  <li>Reduced fopen/fclose clutter. &lt;TRK&gt;&lt;DP&gt; 
  <li>Extended constructors with &quot;imagetype&quot; <i>(for future use)</i>. 
    &lt;TRK&gt; 
  <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. &lt;DP&gt; 
  <li>+ Implemented transparency in CxImage::Draw(). Now Draw() can also stretch 
    the image, so Stretch() became obsolete. &lt;TRK&gt; 
  <li>+ CxImage(FILE * stream) constructor. &lt;TRK&gt; 
  <li>+ JPEG read CMYK format (adobe). &lt;DP&gt; 
  <li>+ Transparency for PNG. &lt;DP&gt; 
  <li>+ Enabled reading of RLE-compressed &lt;TRK&gt; and 16 &amp; 32 bit BITFIELD 
    &lt;DP&gt; bitmaps.
  <li>+ Unicode version for ReadFile/SaveFile. 
  <li>+ MakeBitmap() function &lt;Kurt Diesch&gt; 
  <li>+ JPEG can save 8 bit GrayScale images. &lt;DP&gt;<br>
</ul>
<b>Project - Libraries - Demo application</b> 
<ul>
  <li>Removed MFC-dependency (#include &lt;afxwin.h&gt;) &lt;TRK&gt; 
  <li>Changed jconfig.h with HAVE_BOOLEAN stuff &lt;TRK&gt; 
  <li>+ new tiff_c.c module in theTIFF library, for straight C Runtime Library 
    file functions. &lt;TRK&gt; 
  <li>Demo : now using Project|Dependencies. 
  <li>+ Zoomin/Zoomout menu &lt;DP&gt; 
  <li>+ Capture window menu &lt;DP&gt; 
  <li>+ Acquire from TWAIN source &lt;DP&gt; 
</ul>
<hr>
<h3>Version 1.23, 15 - Oct - 2001</h3>
<b>Bugfixes</b> 
<ul>
  <li> Fixed PNG reading interlaced and gray scale images. &lt;DP&gt; 
  <li>Fixed PNG saving 1 &amp; 4 bit images. &lt;DP&gt; 
  <li>Fixed GIF saving and reading 1 &amp; 4 bit images. &lt;DP&gt; 
  <li>Added safe checks in CImageIterator::SetRow() &lt;DP&gt; and in CxImagePNG::Decode() 
    &lt;yeonjun jeong&gt;
</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) &lt;TRK&gt; 
  <li>+ Get/SetTransColor(): on the fly transparency for RGB images (24 bpp) &lt;DP&gt;
  <li>+ GIF encoder saves transparency information &lt;TRK&gt; 
  <li>+ PNG encoder saves transparency information &lt;DP&gt; 
  <li>+ SwapIndex() function for palette operations with transparency &lt;DP&gt; 
  <li>+ Resample() function &lt;Steve McMahon&gt; 
  <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 &lt;DP&gt; 
  <li>Fixed cast problem in Jcapimin.c, comparing JPEG_LIB_VERSION &lt;F. Livraghi&gt; 
  <li>Resample, DecreaseBpp, IncreaseBpp menu &lt;DP&gt; 
  <li>Stopwatch and ProgressBar in the status bar &lt;DP&gt; 
  <li>Image computations are in a separate thread &lt;DP&gt; 
  <li>Added CQuantizer class to implement the color reduction with the octree 
    algorithm. &lt;Jeff Prosise&gt; 
</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() &lt;Wil Stark&gt;
  <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. &lt;Ayatu&gt; 
  <li>LoadResource() now works with network applications. &lt;Ayatu&gt; 
  <li>Changed CxImage() constructors, Copy() and Transfer() interface and implementation 
    &lt;Kirk&gt; 
  <li>Added CreateFromHANDLE() and CreateFromHBITMAP() in place of the old constructors. 
  <li>Automatic file format recognition in ReadFile() &lt;Patrick Hoffmann&gt; 
  <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 &quot;Capture Window&quot; &lt;Qiang&gt;<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 &lt;F. Livraghi &gt;
  <li>CxImagePNG: fixed deallocation bug in Encode() &lt;Ranger&gt;
  <li>CxImagePNG: now reads 2 bpp images.
  <li>CxImageBMP: fixed DPI rounding error &lt;DIH&gt;
  <li>CreateFromHANDLE now handles the DPI information &lt;Jeff Hu&gt;<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 &quot;copypixels&quot;, &quot;copyselection&quot;, &quot;copyalpha&quot; 
    options for constructor/Copy()
  <li>New &quot;errordiffusion&quot; 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() &lt;Henrik Stellmann&gt;
  <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. &lt;MTA&gt;</li>
  <li>CxImagePNG: Encode() merges the transparent color with the alpha channel.</li>
  <li>Fixed exceptions and leaks in Draw() &lt;RG&gt;</li>
  <li>CxImageBMP now reads 32 bpp BITFIELD images.</li>
  <li>Decode() correctly loads multipage ICO and TIF files. &lt;REC&gt;</li>
</ul>
<hr>
<h3></h3>
<h3>Version 3.21, 11 - Mar - 2002</h3>
<b>Bugfixes</b> 
<ul>
  <li>Fixed memory leakage in CxImagePNG::Encode() &lt;Rob Cass&gt;.</li>
  <li>Fixed CxImageICO::Decode() problem with 16 colors icons &lt;Rogier&gt;.</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 &lt;MKVY&gt;.</li>
  <li>Faster Draw() implementation for images with transparency &lt;DJT&gt;.</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 &lt;CSC&gt;</li>
  <li>Fixed _tiffSizeProc in tif_c.c to load images with missing stripcount.</li>
  <li>Transformations preserve info.dwType perameter &lt;CSC&gt;</li>
  <li>Createfromhandle() bugfix for 32bitfield images &lt;JA&gt;</li>
  <li>GetPixelColor bugfix when the coordinates are in the outside of the image 
    &lt;Mpwolski&gt;</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() &lt;Mpwolski&gt;, Destroy(), IsIndexed()</li>
  <li>Read/Write support for Multipage TIFF &lt;Abe&gt;</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 -&gt; Load ; SaveFile -&gt; 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 &quot;shift+Lbutton&quot; 
  <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 &lt;Ole Lange&gt; 
    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. &lt;Abe&gt; 
</ul>
<b>Project - Libraries - Demo application</b> 
<ul>
  <li>Updated zlib to 1.1.4.&lt;Ayatu&gt; 
  <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. &lt;vho&gt;</li>
  <li>CxImageTIF::Encode saves 1bpp always with PHOTOMETRIC_MINISWHITE &lt;abe&gt;</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 &lt;Kwyshell&gt;</li>
  <li>removed info.bColorType and changed GetColorType() implementation.</li>
  <li>CxImageBMP::Decode handles TopDown Bitmaps &lt;Flanders&gt;, small bugfix 
    &lt;CSC&gt;</li>
  <li>CxImageTIF::Encode : TIFFSetField(m_tif, TIFFTAG_ROWSPERSTRIP, TIFFDefaultStripSize(m_tif, 
    -1)); gives better compression &lt;REC&gt;</li>
  <li>Load( ) returns the correct info.nNumFrame when info.nFrame&lt;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 &amp;&amp; newy==height)</li>
  <li> better operator= definition &lt;Anatoly Ivasyuk&gt;</li>
</ul>
<b>Changes and major additions</b> 
<ul>
  <li>new formats: WBMP, WMF - EMF &lt;vho&gt;, JBIG, JPEG2000.
  <li>new full codec for PCX, with support for RGBA images.
  <li>new methods: GetVersion, IsTransparent &lt;vho&gt;, 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 &lt;T.Peck&gt;
  <li>SetEscape can abort the codecs loops &lt;vho&gt;.
  <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 &lt;vho&gt; 
  <li>added DPI information support for jpeg &lt;Koray Ge&ccedil;ici&gt;
  <li>new CxFile CxMemFile CxIOFile implementations &lt;CSC&gt;
  <li>MakeBitmap( ) creates a real DIB if HDC == 0 &lt;CSC&gt;
  <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 &lt;ayatu&gt;. 
  <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>
&lt;DP&gt; : Davide Pizzolato &lt;ing(dot)davide(dot)pizzolato(at)libero(dot)it&gt;<br>
&lt;TRK&gt; : Troels Knakkergaard &lt;TRK(at)lyngsoe(dot)com&gt;<br>
&lt;Brian R(dot) Zielinski&gt; : Brian R(dot) Zielinski &lt;brianz(at)digital(dot)risserimaging(dot)com&gt;<br>
&lt;Kurt Diesch&gt; : Kurt Diesch &lt;kdiesch(at)enjoysoft(dot)com&gt; <br>
&lt;F. Livraghi &gt; : Francesco Livraghi &lt;info(at)ceccoing(dot)it&gt;<br>
&lt;Steve McMahon&gt; : Steve McMahon &lt;steve(at)dogma(dot)demon(dot)co(dot)uk&gt;<br>
&lt;Ayatu&gt; : Tuncer M(dot) Ayaz &lt;ayatu(at)gmx(dot)de&gt;<br>
&lt;Kirk&gt; : Kirk Korver &lt;kirk(at)the-right-stuff(dot)com&gt;<br>
&lt;Qiang&gt; : Qiang Liu &lt;liuq(at)ee(dot)washington(dot)edu&gt;<br>
&lt;Patrick Hoffmann&gt; : Patrick Hoffmann &lt;hoffmann(at)novacom(dot)net&gt;<br>
&lt;Wil Stark&gt; : Wil Stark &lt;wil_stark(at)agilent(dot)com&gt;<br>
&lt;DIH&gt; : Dominic I. Holmes &lt;DIH(dot)Junk(at)DigitalFormation(dot)com&gt;<br>
&lt;Henrik Stellmann&gt; : Henrik Stellmann &lt;henrik(dot)stellmann(at)volleynet(dot)de&gt;<br>
&lt;Ranger&gt; : Ranger &lt;RangerMail(at)mail(dot)ru&gt;<br>
&lt;Jeff Hu&gt; : Jeff Hu &lt;v120160(at)yahoo(dot)com(dot)tw&gt; <br>
&lt;MTA&gt; : Matthew Armstrong &lt;ArmstroM(at)faro(dot)com&gt;<br>
&lt;REC&gt; : Robert Edward Caldecott &lt;rec(at)kerridge(dot)com&gt;<br>
&lt;RG&gt; : Roberto Guerzoni &lt;r(dot)guerzoni(at)infomotion(dot)mo(dot)it&gt; 
<br>
&lt;MKVY&gt; : Murali Krishna V Yelchuru &lt;muralikrishnayv(at)yahoo(dot)com&gt;<br>
&lt;Rogier&gt; Rogier Reedijk &lt;xs4free(at)wish(dot)net&gt; <br>
&lt;Rob Cass&gt; : Rob Cass &lt;rcass(at)compusult(dot)nf(dot)ca&gt;<br>
&lt;DJT&gt; : Dave Turnbull (Camel) &lt;dave(at)camel(dot)co(dot)uk&gt;<br>
&lt;JA&gt; : J&ouml;rgen Alfredsson &lt;jorgen(dot)alfredsson(at)kamera(dot)com&gt; 
<br>
&lt;Mpwolski&gt; : Mwolski &lt;mpwolski(at)hotmail(dot)com&gt;<br>
&lt;CSC&gt; : Chris Shearer Cooper &lt;cscooper(at)frii(dot)com&gt;<br>
&lt;Abe&gt; : Abe &lt;God(dot)bless(at)marihuana(dot)com&gt; <br>
&lt;Ole Lange&gt; : Ole Lange &lt;ol(at)ams-soft(dot)de&gt;<br>
&lt;vho&gt; : Volker Horch &lt;vhorch(at)gmx(dot)de&gt;<br>
&lt;Kwyshell&gt; : Kwyshell &lt;kwyshell(at)yahoo(dot)com(dot)tw&gt; <br>
&lt;Flanders&gt; : Flanders &lt;flanders(at)2moors(dot)freeserve(dot)co(dot)uk&gt; 
<br>
&lt;Anatoly Ivasyuk&gt; : Anatoly Ivasyuk &lt;aivasyuk(at)dtlink(dot)com&gt;<br>
&lt;T.Peck&gt; : T. Peck &lt;tpeck(at)roundwave(dot)com&gt;<br>
&lt;Koray Ge&ccedil;ici&gt; : Koray Ge&ccedil;ici &lt;kgecici(at)tam(dot)net(dot)tr&gt;) 
<br>
<p>
<hr>
<p align="right"><font size="2"><em>Updated 23. aug 2002 00:00 by Davide Pizzolato 
  &lt;ing(.)davide(.)pizzolato(at)libero(.)it&gt;</em></font></p>
<!--webbot bot="Include" endspan i-checksum="2469" -->
</body>
</html>

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Web Developer Forthnet
Greece Greece
Software developer and Microsoft Trainer, Athens, Greece (MCT, MCSD.net, MCSE 2003, MCDBA 2000,MCTS, MCITP, MCIPD).

Comments and Discussions