CxImage History
Version 7.01, 07 - Jan - 2011
Bugfixes
- fixed errors when CXIMAGE_SUPPORT_ALPHA is 0 or
CXIMAGE_SUPPORT_DECODE is 0 or CXIMAGE_SUPPORT_ENCODE is 0
- fixed Trace [zjh821224]
Project - Libraries - Demo application
- updated LibPNG to version 1.5.0
- updated wcecompat to support LibPNG 1.5.0
Version 7.00, 31 - Dec - 2010
Bugfixes
- fixed CxImageJPG::Decode bug with corrupted files:
CxFileJpg src(hFile); must be before setjmp to avoid leaks in case of
errors [wenfeng248],[jhorner].
- fixed errors when CXIMAGE_SUPPORT_SELECTION is 0 or
CXIMAGE_SUPPORT_TRANSFORMATION is 0 or CXIMAGE_SUPPORT_LAYERS is 0
- CxMemFile: fixed EOF logic
- CxImageGIF: added BAD_LINE_WIDTH error.
- fixed "copy and paste" error in CxImage::HistogramRoot():
was ::log in place of ::sqrt
- CxImageICO fixed decoding for icons with alpha layer when
there is only 1 transparent color and bpp<=8 [TheAlas]
- CxImageGIF: fixed color problem when frames has larger
palette than the 1st one.
- fixed buffer overflow with RLE8 corrupted images
- Crop: added missing call to CopyInfo [joe1203]
- fixed exception in PNG decoder, opening a MNG file
- fixed integer overflow vulnerability in ConvertWmfFiletoEmf
[Tielei Wang, TaoWei, Zhiqiang Lin, Wei Zou]
- fixed Divide by Zero exception in libdcr, in case of
corrupted files [Kai Sandner]
- fixed Access Violation reading location exception
in CxImageTIF::Decode [Stefan Felkel]
- fixed Thumbnail when iDst parameter is not NULL [temper]
- fixed CxImageJPG::Decode compatibility with IJG JPEG 7
[Guido Vollbeding]
- fixed GrayScale conversion from 24bpp with single
transparent color.
- fixed row_pointers cleanup in CxImagePNG::Decode [Rezak]
- fixed GlobalUnlock in CreateFromHANDLE
- CxImageJBG::Decode: missing variable initialization
[Sebastian Gottschalk]
- fixed Comments size in the EXIFINFO structure
[Sebastian Gottschalk]
- CheckFormat : fixed return value when imagetype =
CXIMAGE_FORMAT_UNKNOWN
Changes and major additions
- replaced with the "stdint.h" names the long, short
and int data types
- new method: Trace
- new method: Draw2HBITMAP
- Dither new options: 8x8 and 16x16 Bayer ordered dither
- CxImageGIF: setting SetRetreiveAllFrames(true) does not
anymore require SetFrame(image.GetNumFrames()-1) [altera]
- CreateFromHBITMAP,
CreateFromHICON, MakeBitmap, MakeIcon now can handle the transparent
layer using the "bTransparency" parameter [brunom]
- GetPixelColorInterpolated
and GetAreaColorInterpolated now returns also the rgbReserved component
even without alpha layer, for "alpha palette" support with smooth
drawing
- Rotate and Rotate2 methods call Rotate180 if the angle is
-180.0 or 180.0 [Adrian Cole]
- new methods: RotateExif, GetExifInfo, GetExifThumbnail (for
JPG and RAW images) [XBMC]
- moved ExifInfo inside the CXIMAGEINFO structure [XBMC]
- replaced ntohs and ntohl with m_ntohs and
m_ntohl [XBMC]
- CxImageGIF allocates dinamically the large member variables
- CxImagePNG: added support for compression level control
[Jean-Marie Epitalon]
- CxImage::Encode and CxImage::Decode use pointers
instead of static objects. [Luc Langlois]
- CxImageBMP now can read images with BITMAPV5HEADER
- new file format: CxImagePSD (minimal implementation), if
CXIMAGE_USE_LIBPSD==1, LibPSD is used; else
if CXIMAGE_USE_LIBPSD==0, MyPSD is used [Vitaly Ovchinnikov]
- new option for Draw : bFlipY
- new blending mode for Mix : OpBlendAlpha [brunom]
- faster AlphaSplit
- better alpha channel interpolation in CxImage::Resample
(CxImage::Resample2 is still faster)
- better mymngalloc and mymngfree declatation [Ken
Yee]
- better CXIMAGE_MAX_MEMORY check
Project - Libraries - Demo application
- updated LibPNG to version 1.4.5
- updated LibDCR to version 8.93
- updated zlib to version 1.2.5
- updated LibJpeg to version 8b, (optional patches in the
\doc folder).
- updated
LibTIFF to version 3.9.4, (optional patches in the \doc folder, to
support images with non standard bitpersamples [Vladimir Kladov])
- patched Jasper to work on WinCE
- Added wcecompat library and sample project for WinCE
- demo: new options for PNG compression level
control [Jean-Marie Epitalon]
- Added LibPSD, patched to support the CxImage file
management.
- CxImage ocx and VB demo projects in the CxImage_ocx and
demo_ocx folders
- Added .dev (wxDev-C++) projects for cximage and console demo
Version 6.00, 31 - Jan - 2008
Bugfixes
- fixed CxImageTIF decoder against bad value from
TIFFStripSize
- typo in CxImage::Create for CXIMAGE_MAX_MEMORY check
[philm]
- fixed png_set_background problem with gamma [philm]
- fixed DecreaseBpp: “clrimportant” is no longer ignored
when copying “ppal” into image palette [vuhrust]
- fixed exif decoder in ProcessExifDir, creating infinite
loops with corrupted header
- fixed CxImageICO::Decode, for icons with missing color
count information
- fixed TIFF decoder now handles images with
PHOTOMETRIC_PALETTE tag
- fixed CxImageGIF::decoder, stack overflow problem with
corrupted gif [yilerwang]
- fixed BMP decoder problem with RLE_4 bitmaps [ignacio]
- better BMP decoder for corrupted RLE_8 bitmaps
- fixed DibReadBitmapInfo for bitfield bitmaps with long
header [KitChen]
- fixed CxImageWMF::Decode rounding error in image width and
height
- fixed CxImageWMF::ConvertEmfFiletoEmf against invalid file
header [Carlos_Abraxas]
- fixed CxImageGIF::Decode, for images with local colour
table [debugman]
- CxImageGIF now loads images with invalid (empty) screen
descriptor.
- fixed boundary effect problems in Erode, Dilate, Edge,
Median, Contour, Filter [juicy_emad]
- fixed Filter behaviour with grayscale case: now the result
is the same than the one in generic case.
- fixed UnsharpMask [Darin Warling]
- fixed Draw when smoothing is enabled and zoom is lees than
100%
- fixed SelectionAddPixel: missing info.rSelectionBox update
- fixed
bug in SelectionAdd… functions: wrong value assigned to
info.rSelectionBox.top and info.rSelectionBox.right, makes unprocessed
pixels on selection boundary [Philosoft]
- fixed bug in SelectionAddEllipse when the ellipse is bigger
than the image dimension
- SelectionInvert now sets the correct info.rSelectionBox.
- SetEscape(-1) returns the image dimension for all the
formats
- fixed Bitfield2RGB to decode 32 bit per pixel data
- fixed
CxImageTIF::EncodeBody, when saving 8 bpp images, with
TIFFTAG_PREDICTOR==2, the image buffer is corrupted by the tiff
encoder. [adnanmn]
- fixed blur_text: iSrc->head.biWidth, not just
head.biWidth
- Better CxImageMNG error handling (avoid crash with 0 lenght
files)
- fixed cinfo.density_unit handling in CxImageJPG::Decode
[andy]
- fixed CxImage::Copy to preserve DPI information [andy]
- fixed SetXDPI/SetYDPI to reflect DPI towards CopyToHandle
- fixed CxImageBMP::Decode if alpha pixels are all zero
- fixed info.nProgress computation, for images with active
selection [zhanghk]
- fixed SwapIndex: access violation
- fixed MixFrom: didn’t copy black pixels if the image has no
transparency enabled [Matt]
- Removed unnecessary check in DrawStringEx [rowkajhh]
- fixed bug in BlindGetPixelColor: alpha was not handled for
images with 8 bpp or less
- fixed bug in Destroy and LayerDeleteAll: info.nNumLayers
was not set back to 0. [Matt]
- fixed bug in LayerDelete, when deleting the last layer,
info.nNumLayers and pLayers were not set back to 0
- fixed CreateFromHANDLE for 16 bit bitmaps [gofame]
- fixed bug in Flip(): added check whether the temporary
image was allocated correctly [Jonathan Marshall]
- Better parameter check in Encode(CxFile * hFile, CxImage **
pImages, int pagecount) for multipage TIF, ICO, GIF
- fixed bug in CxMemFile::GetBuffer: can only detach, avoid
inadvertantly attaching to memory that may not be ours [Jason De Arte]
- fixed bug in SetPixelColor: bSetAlpha was ignored for
indexed images
- fixed wrong background comparison in Mix with option
OpDstCopy [Marquis.D.J], [Sims]
- fixed missing ReleaseDC in DrawStringEx [Chris]
- fixed bug in BlindGetPixelColor: rgb.rgbReserved not
assigned in images without alpha layer [Hermann]
- fixed WBMP encoder/decoder: wrong file header handling if
width or height are more than 127 [Gary Yang], [Marcus Ackermann]
- fixed bug in CreateFromArray and CreateFromMatrix:
bFlipImage parameter was ignored for alpha channel [Vitaly Ovchinnikov]
- fixed Mix with OpScreen option: wrong scaling factor:
>>8 -> /255
- fixed CreateFromHANDLE for the case RLE_4 as for the bmp
decoder
- Better check against possible overfows in CxImage::Create,
if requested width and height are huge [Steve Manzuik]
- fixed RepairChannel: pixels on borders were not processed
+ fixed rounding error [juicy_emad]
- fixed wrong coefficient in the Stevenson - Arce error
diffusion algorithm [Sam Hocevar]
- fixed bug in SetStdPalette: info.last_c_isvalid was not
set to false
- fixed bug in Lut: grayscale image without selection, after
Lut was no longer a grayscale
- fixed missing ReleaseDC in DrawString [Chris]
- CImageIterator::GetRow(BYTE *buf, int n) will not copy
more than GetEffWidth() bytes
- The transparent condition is info.nBkgndIndex>=0,
not info.nBkgndIndex!=-1
- SetTransIndex accepts only indexes less than the number of
colors
- Fixed bug in RGBtoBGR: memory corruption if
lenght>3*width
- info.nAlphaMax no longer affects alpha layer saving TGA
and PNG
- fixed BMP and ICO read and write image with alpha layer
and width not a multiple of 4
- fixed rounding error in Rotate, in computation of new
image size
- typo #define __ixmaJPEG_h -> #define __ximaJPEG_h
[wayne]
- fixed pointer casts to DWORD (/Wp64 compatibility)
- fixed CxImageICO::Encode saving 4 or 8 bit icons with
transparent color
Changes and major additions
- support for UNICODE [Eric Jesover]
- SetStdPalette works also for 1 bpp images
- CxImageICO now decodes Vista (png) icons.
- ximatif.cpp: updated to support images with non standard
bitpersamples [Vladimir Kladov]
- New method: AlphaFromTransparency
- New method: GaussianBlur, faster than Filter and accepts
arbitrary smoothing radius
- updated CxImageMNG to handle MNGs with alpha layer
- New method: SwapRGB2BGR
- Replaced
GetPixelColor, GetPixelIndex, AlphaGet, SelectionIsInside with the
“blind” version, in the methods where it is safe. Up to +25% speed gain.
- RotateLeft and RotateRight now preserve the selection layer
- New method: TextBlur, selective blur on diagonal lines or
round borders
- New methods: SelectionSet, SelectionGet,
BlindSelectionGet, BlindSelectionIsInside
- DrawStringEx now draws strings also with “antialias”
option. Updated the CXTEXTINFO structure with a new “smooth” variable.
- Improved RedEyeRemove
- Added parameter “level” in SelectionAddRect,
SelectionAddEllipse,
SelectionAddPixel, SelectionAddPolygon, SelectionAddColor,
SelectionClear: multiple selections, remove selection area with level=0.
- New method: SelectionRebuildBox
- New method: SelectiveBlur [nipper]
- CxImageBMP now reads/writes 32 bit images (alpha channel)
[f22_storm] [Rasqual]
- New method: SetType
- New image format: SKA (built in)
- ENUM_CXIMAGE_FORMATS: assigned unique integral values for
every CXIMAGE_FORMAT_XXX [Alvaro Segura] [Balabasnia]
- Faster CxImagePCX::Encode
- CxMemFile increased preallocation from 4kbyte to 64kbyte,
for better speed performance
- CxMemFile::Alloc now returns a bool, to tell if the
allocation has been successful
- New method: GetTransparentMask, works for simple
transparency and with alpha channel
- new file format: CxImageRAW
- CxImageRAW, decoder quality can be set through
SetCodecOption
- New methods: Dump, UnDump, DumpSize
- AlphaCreate now returns bool
- Added support for writing multipage icons, also in vista
format, [Alas]
- CxImageJAS::Decode always force conversion to sRGB. [Nudel]
- New static methods: GetNumTypes, GetTypeIdFromName,
GetTypeIdFromIndex, GetTypeIndexFromId
- Replaced “catch (char *” with “catch (const char *” for
compatibility with linux compilers [Lars Munch]
- fixed
problem with bcc32, in CxImagePNG::user_.. methods; added PNGAPI and
removed casts in png_set_write_fn, png_set_read_fn, png_set_error_fn
calls [Ivan_A._Krestinin]
- Faster Flip [qhbo]
- New methods: SelectionMirror, SelectionFlip
- Flip and Mirror: added parameters to select if transform
also the selection (default=no) and alpha (default=yes) layers
- Draw and Draw2: added ::SaveDC and ::RestoreDC, to work in
MM_ANISOTROPIC, MM_HIENGLISH, and similar modes [Greg Peatfield]
- CreateFromHANDLE now handles also top-down bitmaps
[heavyweight]
- New options for jpeg encoder: ENCODE_SUBSAMPLE_422 (4:2:2,
medium sub
sampling), ENCODE_SUBSAMPLE_444 (4:4:4, no sub sampling). If none
specified, encoder will use 4:1:1 high sub sampling.
- CreateFromHICON now works also with 32bit icons [Arlen
Albert Keshabian]
- New methods: GetJpegQualityF, SetJpegQualityF, extended the
JPEG
quality parameter to use float numbers, necessary for low compression
rate in JPEG2000 [Stefan Schürmans]
- New parameter for QIShrink: bChangeBpp, useful for B/W
image thumbnails [Artiom Mirolubov]
- New
method: Threshold2: Filters only the pixels with a lightness less (or
more) than the threshold level, and preserves the colors for the
unfiltered pixels. [wangsongtao]
- Faster GrayScale (2x) for 1 and 4 bpp images [Thomas M.
Boser]
- GetVersion and GetVersionNumber now are static members
- Replaced “memcmp” operations between pixel and background
color with
IsTransparent(x,y), to avoid wrong behaviour with black pixels or in
images with alpha layer. Affected methods: Mix and MixFrom
- New method: LayerDrawAll
- New methods: KernelHanning, KernelPower
- Added CXIMAGE_SUPPORT_DECODE switch for all the formats
- UnsharpMask now support selections
- Slightly faster: Resample (in bilinear case), Colorize,
AlphaStrip
- New method: Solarize [Priyank Bolia]
- New method: GammaRGB
- New method: SelectionGetPointer
- Better Expand: now handles alpha and selection channels
- New methods BlindSetPixelColr and BlindSetPixelIndex
- New method: FloodFill
- New method: Saturate
- New method: ConvertColorSpace
- New method: OptimalThreshold
- HistogramStretch added threshold parameter
- NewMethods: Threshold(CxImage*)
- NewMethods: AdaptiveThreshold
- Improved PNG decoder/encoder
- Better throw/catch message error handling in case of throw””
- Encode2RGBA: new bFlipY parameter [AMSN]
- New method: CheckFormat [AMSN]
- New Methods: Get/SetDisposalMethod,
Get/SetRetreiveAllFrames, GetFrame, DestroyFrames [AMSN]
- CxImageGIF, now can decode all frames in a single pass, if
enabled with SetRetreiveAllFrames [AMSN]
- CxImageGIF::Encode, new option: bLocalDispMeth enables the
creation of
animated gifs with independent disposal method for each frame
- New methods: ntohs and ntohl for big little endian
conversion in built in formats (bmp, ico, tga, pcx, gif, ska)
- pLayers : renamed with ppLayers, replaced malloc with new
- new option for Mix: OpAvg
- MakeBitmap edited to work also with windows CE
[Vincent_RICHOMME]
- CxImage::Blt now paints the image also in positions
different than (0,0). [RT]
- Defined try, thorw, catch for compilers without exception
handling [RT]
Project - Libraries - Demo application
- minor configuration editing for VC8 warnings
(_CRT_SECURE_NO_DEPRECATE)
- Demo, new menu: graph data extraction
- LibTIFF: tif_getimage.c updated to support images with non
standard bitpersamples [Vladimir Kladov]
- Demoview: fixed crash printing images with DPI=0
- added libMNG version 1.0.10
- Updated DlgText to test the “antialias” option in
DrawStringEx
- Demo, new menu: RedEyeRemove
- Demo, new menu: Blur selection border
- Demo: DecreaseBpp preserves transparent color
- Demo: remember last file type used for unknown file type
- Demo: DlgDataExt preview image
- defined MNG_ERROR_TELLTALE in libmng
- Demo: now pastes also metafile pictures
- Added LibDCR
- Demo: custom clipboard copy/paste (Dump/Undump testing)
- Demo: new options for the JPEG format subsampling
- Updated libpng to version 1.2.24
- Better console demo (demo2): support UNICODE and batch
conversion [Ian Knight]
- Demo: more options for RAW file format interpolation
- Demo: removed the unused Edit\Cut menu and toolbar button
- Removed unnecessary definitions for MBCS and AFXDLL in the
projects settings [Pixelpoint]
- Demo: Erode, Dilate now use a kernel=3
- Demo: new dialog for custom linear filters [Priyank Bolia]
- Demo: filter parameters are shared between all documents
- Demo: added 2nd toolbar for commom operations
- Demo, new menu: Expand, GammaRGB
- Demo, new tool: FloodFill
- Demo, new menu: Saturate, histogram saturation
- Demo, new menu: HistogramStretch with threshold parameter
- Demo, new menu: AdaptiveThreshold
- Better CQuantizer rounding behaviour
- updated ZLIB to 1.2.3 (no changes)
- updated jasper to 1.900.1 (casts, minor config)
- removed CXIMAGE_FORMAT_J2K, and j2k (now openjpeg)
-> use jasper for j2k images
- Demo, new menu: add shadow
- Demo: display animated GIF
- working version and demo for Pocket PC 2003
[Vincent_RICHOMME]
- Updated project configurations to build in VC++express2005
and VC++2008
- console demo: removed MFC dependencies, now can build with
VC++express2005 + PSDK
Version 5.99c, 17 - Oct - 2004
Bugfixes
- CxImageTIF::Encode: default compression for 4 bpp image was
NONE, now it's LZW.
- CxMemFile::Seek: fixed bug introduced in version 5.99b:
seeking beyond file size is legal !!!
Version 5.99b, 10 - Oct - 2004
Bugfixes
- fixed SetXDPI and SetYDPI to accept only positive dpi
values
- fixed EXIF decoder against invalid TAG_EXIF_OFFSET /
TAG_INTEROP_OFFSET
- fixed missing definitions in ximawnd.cpp when
CXIMAGE_SUPPORT_BMP is 0
- fixed
CxFileJas
constructor to
avoid crashes, when Jasper deals with its temporary files, decoding
large images [vho]
- removed default
imagetype
value
from CxImage::Save
[Choi Byungtae]
- fixed
Mean()
for images with an
active selection [Admir Hodzic]
- fixed GIF decoder for animated images with corrupted
frames.
- fixed GIF decoder for images with screen descriptor larger
than the first frame.
- fixed GIF decoder to handle the disposal methods correctly.
- CxImageWMF reads images mapped in MM_TEXT, when
MM_ANISOTROPIC fails.
- fixed
Clear
for 1 and 4 bpp
images.
- fixed typo in ximajpg.cpp: ENTRPY_OPT_SUPPORTED -]
ENTROPY_OPT_SUPPORTED [Boum]
- fixed potential memory overflow in RLE decoder reading
corrupted bitmaps.
- Better UNICODE support [Cesar M] and fixed TCHAR mappings
for Linux.
- fixed bug in
IsTransparent
, for
images with a valid alpha layer.
- fixed bug in
Create
: a vaild
image was created even if width or height were zero.
- CxMemFile: fixed problem for compilers where malloc(0)
returns 0, + improvements in Alloc and Seek.
Changes and major additions
- new functions:
Rotate2()
[BD], Resample2()
[BD] QIShrink()
[BD] , RedEyeRemove()
[???] , Edge()
,
SelectionSplit()
, IsSamePalette,
BlendPixelColor
, GetVersionNumber, Encode2RGBA
- new dithering algorithms: Bayer, Burkes, Stucki,
Jarvis-Judice-Ninke, Sierra, Stevenson-Arce [Franco Gerevini]
- renamed
AlphaGetBits
with AlphaGetPointer
[BD]
- new compiler switch: CXIMAGE_SUPPORT_INTERPOLATION to
enable pixel color interpolations,
implemented in the ximaint.cpp module [BD]
- New bEnableInterpolation parameter for
Skew()
- New
blend
parameter for Colorize()
- color conversion routines now are declared as
static
FFT2
now works also with Borland
compilers
- more interpolation kernels [Vladimír Kloucek]
- Smooth stretching parameter for
Draw
,
thanks to [Vladimír Kloucek] and [BD]
- Added
FreeMemory
function, to
avoid heap problems using Encode
with memory
buffers [livecn]
- new
bMixAlpha
parameter and new OpScreen
blending mode for Mix()
- LZW compression is the default algorithm for GIF
compression.
- CxImagePNG now can encode interlaced images
- Get/SetCodecOption now has an "ImageType" parameter, so
that each format keeps its specific options
- Faster
RotateLeft
and RotateRight
[BD]
- CxImageJPG now can write back the EXIF information
(verbatim copy).
Project - Libraries - Demo application
- Demo: new dialogs for Resample, Rotate, Skew with more
options, JPEG compression
- New license based on zlib/libpng philosophy, see ximage.h
and ./doc/license.txt
- Demo: new tool: tracker
- Demo: new View/Smooth menu to test smooth drawing in zoom
and stretch modes
- Demo: more CodecOptions on the Options dialog, enabled LZW
compression for GIF and TIF formats.
- PNG: updated to libpng 1.2.7
- JBIG: updated to version 1.6
- Better documentation : now using Doxygen.
Version 5.99a, 08 - Feb - 2004
Bugfixes
- fixed bug in AlphaCopy, AlphaSet, SelectionCopy [Tacho]
Changes and major additions
Project - Libraries - Demo application
- Demo: fixed save/restore window position and options
Version 5.99, 31 - Jan - 2004
Bugfixes
- fixed linking problems when CXIMAGE_SUPPORT_ENCODE is 0
[Schuberth] [Squidge]
- fixed missing in parentheses in CreateFromMatrix and
CreateFromArray [sihun] [H.C.Anderson]
- fixed incorrect decoding for 4-bit RLE Windows bitmaps
[chupeev]
- Removed unreachable code in Resample [Lucian Ioan]
- CxImagePNG::Encode : removed useless call to iter.GetRow
[Chieh An Lu]
- fixed color comparison using long integers (if rgbReserved
is not 0) in CxImagePNG and CxImageICO [James Dickson]
- CxExifInfo now reads the exif data also in a second
directory [Richard Collins]
- Dither now preserves DPI information
- fixed PNG decoder for interlaced images with transparent
layer
- fixed GIF decoder bug for animated images with local color
table.
- fixed problem in Draw() with indexed images, when 2 indexes
hold the same color and 1 is transparent.
- fixed memory overrun in Crop() for 8 and 24 bpp images.
[DT]
- fixed BMP decoder when loading 8 bit resources with less
than 256 colors [DT]
- CxImageTIF now handles TIFFTAG_RESOLUTIONUNIT [Trifon]
- Fix for decoding 8 bpp tifs with alpha layer [Nick Holgate]
- fixed error in mymngerror() [Arkadiy Olovyannikov]
- fixed TIFFTAG_PREDICTOR, saving 1 and 4 bpp images with LZW
compression [Hermann62]
Changes and major additions
- Renamed DrawText with DrawString
- New bGetAlpha parameter for GetPixelColor
- CxImageICO now reads also windows cursors (.CUR)
- support for UNICODE [Igor Rosenberg]
- Renamed Get/SetEncodeOption with Get/SetCodecOption
[chupeev]
- AlphaCreate also initializes the layer to full opaque.
- new functions: DrawStringEx, InitTextInfo,
CropRotatedRectangle [VATI], MixFrom [Kenneth Ballard], UnsharpMask
[nipper], Lut
- increased default JPEG quality to 90 [VATI]
- CxImageTIF::Decode saves original compression in
info.dwCodecOption [DPR]
- new functions: CxImageTIF::TIFFOpenEx and
CxImageTIF::TIFFCloseEx, to handle directly a TIFF directory.
- CxImageJPG::Decode and CxImageJPG::Encode handles more jpeg
DECODE_XXX and ENCODE_XXX methods
(through SetCodecOption and SetJpegQuality) [chupeev]
- new dwRop parameter for Stretch, allows raster-operation
codes. [?]
- Faster Filter() for 8bit grayscale images [Thomas M. Boser]
- SetEscape(-1) before Decode returns the image width and
height only ( for bmp, jpg, gif, tif ) [ignacio]
- new Set/GetJpegScale() before Decode, to open a resized
image (for jpeg only) [ignacio]
- new function : CircleTransform for FishEye, Swirle,
Cilinder, bathroom effects [Arkadiy Olovyannikov]
- new methos for HistogramStretch: 0 = luminance [dave], 1 =
linked channels [nipper], 2 = independent channels [nipper], and for
grayscale images
- faster Light and Gamma [nipper]
- CImageIterator new methods: Get/SetCol() to extract a
single column.
- Better error checking in image initialization functions.
- CreateFromHANDLE now reads also RLE compressed bitmaps
[Michael Gandyra]
Project - Libraries - Demo application
- Updated zlib to 1.2.1.[Tuncer M. Ayaz]
- Demo: status bar updated after Crop or drag & drop
[VATI]
- demoview.h : new Dpoint2d structure [VATI]
- demodoc.h : new LEN2D macro [VATI]
- Demo: save/restore window position [VATI]
- Demo: new DlgText features [VATI]
- Demo: new Selection tool options: CTRL+Rclick = move
selection, shift+Lclick= rect selection, Rclick on a rect selection =
rotate selection [VATI]
- Moved tif_xfile.cpp from LibTiff to CxImage directory and
workspace
- Demo2 : Updated FindFormat
- Demo : new Mix dialog and menus for CircleTransform
Version 5.80, 27 - Sep - 2003
Bugfixes
- Fixed head.biSize initialization: moved from Startup() to
Create() [ralphw]
- Fixed problem in SetTransColor when rgbReserved is not 0
and in the image there is an alpha layer.
- CxImageBMP::Decode : force rgbReserved=0 in the palette ,
to avoid problems with some WinXp bitmaps. [Colin Urquhart]
- Fixed warnings for size_t type in iA64 compiler [Frank
Sowinski]
- GrayScale from 1, 4 and 24 bit images now preserves info
and selection layer
- CxImageICO::Decode will not create the alpha layer if it's
not strictly necessary;
and reads images embedded inside a file [yuandi]
- CxImageJPG::Decode : check image allocation before further
processing.
- Fixed DLL_EXP definition and inlined CxImage destructor for
older VC++ compilers [Wassily Gibin]
- Fixed CxFileJas::JasClose() bug with memory files [osamu44]
- Added missing casts in floating point functions in
CxExifInfo [Branko Drevenšek] [Tuncer M. Ayaz]
- Fixed memory leak in CreateFromHICON [Sims]
- Fixed access violation in CxImageTIF::Decode with some
CieLab images [Vitaly Titov]
- Fixed GDI leak in CxImage::DrawText() [Henry P.]
- Crop now works also with the alpha layer. [oboolo]
- Fixed bias and canvas size in CxImage::Rotate()
- CxImageGIF now stores the comment before the image body.
- Encode() functions now check both file and image handlers
with EncodeSafeCheck()
- IncreaseBpp to 24 bit from images with simple transparency,
now sets the correct transparent color.
- CxImageBMP::DibReadBitmapInfo accepts non standard headers
if the stored information is valid
- CxImage::Decode with CXIMAGE_FORMAT_UNKNOWN, now preserves
CxImage::info
- Fixed sizeof(BITMAPFILEHEADER) in CxImageBMP, to avoid
struct alignment errors
Changes and major additions
- New functions Get/SetClrImportant()
- Added new clrimportant parameter for DecreaseBpp
- Faster Light() for full RGB images
- GetPixelIndex returns the index of the top-left pixel when
the coordinates are out of the image and no background color is
selected
- CxImagePNG::Encode saves info.nBkgndColor (or white) as
bKGD color, for IE
- Added "bEditAlpha" parameter to DrawText.
- New functions:
SelectionAddPixel [Anatoly Ivasyuk],
DrawLine [JDL],
IsTransparent(long x, long y) [Sims],
AlphaGetBits(), Expand(), Thumbnail() [Colin Urquhart]
CreateFromMatrix(), CreateFromArray() , replace CreateFromARGB()
- CXIMAGE_MAX_MEMORY prevents huge allocations
- GetBits() returns the pointer to the first byte in a
generic row
- New bDetachBuffer parameter in CxMemFile::GetBuffer, to get
the buffer for read only purpose [Wassily Gibin]
- Faster (x4!) bicubic interpolation and fixed bias error
[Kristian Kratzenstein]
- CxImagePNG::Encode saves only the minimum number of palette
colors for small images [Basara]
- Added "hpal" parameter to CxImage::CreateFromHBITMAP, for
indexed DCs [Zahi Kapeluto]
- CxImageTGA::Decode now reads also images with illegal
packets [Colin Urquhart]
Project - Libraries - Demo application
- Updated CQuantizer to handle color reduction to less than
16 colors
- JAS_IMAGE_INMEMTHRESH increased to avoid jasper temporary
file
- Updated JBig library: JBIG-KIT 1.5 (2003-06-11)
- \jpeg\jmorecfg.h : fixed INT32 redefinition for Borland C++
Builder6
Version 5.71, 25 - Apr - 2003
Changes and major additions
- new formats: JP2, JPC, PGX, PNM, RAS (through JasPer)
- new functions: Set/GetFlags( ), LayerCreate( ),
LayerDelete( ), LayerDeleteAll( ), GetLayer( ), GetParent( ),
GetNumLayers( )
Project - Libraries - Demo application
- New C library : JasPer 1.700.2
Version 5.70, 19 - Apr - 2003
Bugfixes
- fixed RGB2GRAY macro [H. Muelner]
[jurgene]
- SelectionAddPolygon and SelectionAddColor compute
correctly info.rSelectionBox
- fixed SelectionAddPolygon when the polygon touches the
image borders.
- fixed EXIF reader
- fixed CxImageGIF::DecodeExtension
- CxImageTIF::EncodeBody : better error handling, and switch
for different compression tags.
- CImageIterator : fixed friend declaration in ximaiter.h,
line 37 [gazzivan]
- fixed DPI default values in CreateFromHANDLE
- CxImageBMP now reads OS2 bitmaps
- fixed cast problem in Histogram functions [Tuncer M. Ayaz]
- fixed memory corruption in RotateLeft( )
RotateRight( ) for 1 bpp images. [Stroupe David R]
Changes and major additions
- New MakeBitmap(hdc) implementation when hdc is 0
[jaslet]
- Light( ) : shifted down the contrast parameter so that the
neutral value is 0.
- New filters: Jitter( ), Skew( )
- Negative( ) moved in BASICTRANSFORMATIONS
Project - Libraries - Demo application
- New CxImageCrtDll.dsp project, to build a dll without mfc
[Anatoly Ivasyuk]
- fixed bug in Window/Duplicate with no image in the
document. [corwinkrisw]
- \jpeg\jdmarker.c line 1091 : skip check for unknown marker,
to decode partially corrupted files.
Version 5.61, 10 - Mar - 2003
Bugfixes
- fixed SplitXYZ and floating point constants in ximadsp.cpp
[???]
Version 5.60, 09 - Mar - 2003
Bugfixes
- CxImagePNG read/save DPI
- SelectionAddRect computes correctly info.rSelectionBox
[arnold wittenberg]
Changes and major additions
- better RGB2GRAY macro [dave]
- new functions: HistogramStretch( ), HistogramEqualize( ),
HistogramNormalize( ), HistogramRoot( ), HistogramLog( ) [dave]
- GetPixelColor returns the color of the top-left pixel when
the coordinates are out of the image and no background color is
selected
- new function: Contour( )
- new bicubic spline interpolation for Resample( )
- Faster GetNearestPixel( ) [RJ]
Project - Libraries - Demo application
Version 5.55, 17 - Feb - 2003
Changes and major additions
- fixed bug in CreateFromARGB [Olivier Ansquer]
- CxImageTGA::Decode flips the alpha channel when required
[lioucr]
- CxImageGIF::DecodeExtension, fixed problem when extension
information is more than 3 bytes. [TomPeakz]
Project - Libraries - Demo application
- jpeg\jdcolor.c, line 384 changed again to permit null
conversion if the output space is undefined OR input and output sapaces
are the same[DP]
Version 5.53, 27 - Jan - 2003
Changes and major additions
- New functions: CreateFromHICON
- Replaced SetPaletteIndex with SetPaletteColor and GetRGB
with GetPaletteColor
Project - Libraries - Demo application
- Demo : fixed GDI leak in LineDDAProc [jh]
- jpeg\jdcolor.c, line 384 changed to permit null conversion
if the output space is undefined (OJPEG) [DP]
- tiff\tif_ojpeg.c from line 1374 to line 1407 : avoid
sampling factors check [DP]
Version 5.51, 19 - Jan - 2003
Bugfixes
- fixed GDI leak in CxImage::Draw when pClipRect is not null
[Carsten Leue]
Project - Libraries - Demo application
- Updated LIBPNG to 1.2.5 [Tuncer M. Ayaz]
- added jpeg_reset_huff_decode function in jpeg\jdhuff.c for
the broadest possible support for OJPEG files
(implemented by Scott Marovich at HP [marovich(at)hpl(dot)hp(dot)com])
jpeg\jdmarker.c : line 204 and 261 allow SOI and SOF duplicate only if
cinfo-]global_state == DSTATE_INHEADER
(should be illegal, but OJPEG files have an illegal structure [DP])
- tiff\tif_jpeg.c from line 673 to line 697 : avoid sampling
factors check [DP]
Version 5.50, 07 - Jan - 2003
Bugfixes
- CxImageTIF : added support for tiled images
- CxImageTIF : faster decoding with TIFFNumberOfDirectories,
instead of looping [Robert Abram]
- CxImageTIF : fixed stripsize check when samplesperpixel is
more than 1.
- DecreaseBpp( ) and IncreaseBpp( ) preserve info
- Tile( ) fixed when the rectangle is not a multiple of the
image dimension. [dock]
- Added missing casts in floating point functions [Tuncer M.
Ayaz]
- CxImageGIF : fixed loop counter saving animated gifs
[handong]
- CxImageGIF::get_byte : fixed overflow when reading
corrupted images.
- CxImageGIF::get_num_frames : fixed undefined TabCol
structure.
- CxImageGIF : a palette without white is accepted.
- CxImageGIF : avoid byte order problems with Solaris
[candan]
- CxImageTGA : Encode now saves the last palette entry.
- CxImageICO : Decode reads Bpp from the bitmapinfoheader
instead of icondirentry [CoreyRLucier]
- CxImageJBG : fixed Encode crash when copying pixels form
cximage to the decoder buffer.
Changes and major additions
- Replaced IsAlphaPaletteEnabled with AlphaPaletteIsEnabled,
AlphaIsValidPalette with AlphaPaletteIsValid, GetSelectionBox with
SelectionGetBox
- New SplitCMYK( ), GetPixelGray( ), AlphaPaletteSplit( )
- Added the bLocalColorMap parameter to CxImageGIF::Encode,
for animated gifs with local palettes
- New AlphaSet(CxImage &from): creates the alpha
channel from a gray scale image.
- One or more images can be appended directly to a TIF file,
using CxImageTIF::Encode(file,true); or Encode(hFile,pImages,pagecount)
[RJ]
- Fast RotateLeft( ) and RotateRight( ) for BW images
[Robert Abram]
- SetPixelColor( ) and GetPixelColor( ) handle alpha in
RGBQUAD::rgbReserved.
- IncreaseBpp is faster for conversion to 4 and 8 bpp,
AlphaPalette converted to an alpha channel for conversion to 24 bpp.
- info.nProgress updated in the dsp and transformation
functions [Anatoly Ivasyuk].
- New info.dwEncodeOption parameter to select the
compression scheme for GIF and TIF.
- New CxImageWMF::Decode parameters:
nForceWidth,nForceHeight to force the final dimension of the image.
- CxImageJ2K::Encode : new formula for compression rate, so
the quality for j2k and jpg are similar.
- Added CXIMAGE_FORMAT_UNKNOWN for automatic image type
detection.
Project - Libraries - Demo application
- Fixed exception in DlgHisto
- CQuantize handles palettes with alpha information
- better dump of the memory leaks [dave]
Version 5.11, 29 - Sep - 2002
Bugfixes
- ximadefs.h : added pragma pack(1) for BMP structures
alignment with Linux compilers
Version 5.10, 23 - Sep - 2002
Bugfixes
- CxImageGIF : restored lzw algorithm. [Olivier Ansquer]
- CxImageTIFF : added support for CIELAB images.
- CxImageTGA : fixed problem decoding corrupted files.
- CxImageBMP: fixed problem with os2 and 16bit images [Cui
Ying Jie]
Changes and major additions
- New DrawText function.
- Added iDst parameter in Resample( ) [CSC]
- New SelectionToHRGN( ) and SelectionAddColor( ) [elrod]
- Replaced HasAlpha with AlphaIsValid, HasSelection with
SelectionIsValid, HasAlphaPalette with AlphaIsValidPalette
- New CreateFromARGB( ) [Olivier Ansquer]
- Added DLL_EXP for CxImageTIF and CxImageGIF [Olivier
Ansquer]
Version 5.00, 23 - Aug - 2002
Bugfixes
- CxImageTIF::Decode : fixed default orientation. [vho]
- CxImageTIF::Encode saves 1bpp always with
PHOTOMETRIC_MINISWHITE [abe]
- CxImageJPG::Encode : fixed jpg encoder for memory files.
- CxImageICO::Encode : fixed problem with 4bpp images with
transparency.
- CxImagePNG::Encode : fixed problem when info.bColorType
was wrong [Kwyshell]
- removed info.bColorType and changed GetColorType()
implementation.
- CxImageBMP::Decode handles TopDown Bitmaps [Flanders],
small bugfix [CSC]
- CxImageTIF::Encode : TIFFSetField(m_tif,
TIFFTAG_ROWSPERSTRIP, TIFFDefaultStripSize(m_tif, -1)); gives better
compression [REC]
- Load( ) returns the correct info.nNumFrame when
info.nFrame[0.
- removed bug in tif_xfile.c when encoding memory files.
- CxImageBMP::Decode loads correctly OS2 bmps.
- bugfix in Resample( ) when (newx==width &&
newy==height)
- better operator= definition [Anatoly Ivasyuk]
Changes and major additions
- new formats: WBMP, WMF - EMF [vho], JBIG, JPEG2000.
- new full codec for PCX, with support for RGBA images.
- new methods: GetVersion, IsTransparent [vho], ShiftRGB,
Median, Gamma, Noise, Combine, FFT, Repair, AlphaSplit
- added r/w support for 8bpp TIFFs with alpha layer.
- added support for TrueColor, RLE and uncompressed GIFs.
- added CXIMAGEJPG_SUPPORT_EXIF for JPGs.
- new switches: CXIMAGE_SUPPORT_DECODE,
CXIMAGE_SUPPORT_ENCODE,
CXIMAGE_SUPPORT_WINDOWS, CXIMAGE_SUPPORT_WINCE [T.Peck]
- SetEscape can abort the codecs loops [vho].
- added ximadefs.h to adjust automatically the switches.
- the codecs for ICO, PNG, TGA and TIF work also with
CXIMAGE_SUPPORT_ALPHA = 0 [vho]
- added DPI information support for jpeg [Koray Geçici]
- new CxFile CxMemFile CxIOFile implementations [CSC]
- MakeBitmap( ) creates a real DIB if HDC == 0 [CSC]
- Draw( ) added pClipRect parameter.
- CxImageTIF::Decode : re-enabled error handler for
debugging;
Project - Libraries - Demo application
- Zlib : replaced zlib.rc and zlib.def [Tuncer M. Ayaz].
- Demo: new tools, histogram, palette, replaced xshadebutton
with xtargetbutton.
- Updated LIBPNG to 1.2.4
- LibTIFF::tiff_read.c::ln188: commented to decode strange
images, it's not dangerous.
- LibTIFF small changes to compile under linux
(tiff_xfile.cpp, tiff_jpeg.c, tiff_ojpeg.c, tiffiop.h)
- LibJPEG : small changes to compile under linux
(jmorecfg.h)
- Added project for DLL build and console applications.
Version 4.10, 01 - Jun - 2002
Bugfixes
- Fixed PNG error handler.
- Fixed TGA decoder for RLE encoded pictures with alpha
channel [Ole Lange] and 15 bit pictures.
- Fixed BMP decoder for 32 bit images.
Changes and major additions
- Added Read/Write support for 24 and 32 bit ICONs.
- new bAppend parameter in CxImageTIF::Encode() for better
multi page TIF creation. [Abe]
Project - Libraries - Demo application
- Updated zlib to 1.1.4.[Tuncer M. Ayaz]
- Added OJPEG_SUPPORT (not for Wang).
Version 4.01, 15 - May - 2002
Changes and major additions
- Added some constructors and Encode()/Decode() methods to
work with memory buffers directly.
Project - Libraries - Demo application
- Changed URL download dialog.
Version 4.00, 12 - May - 2002
Bugfixes
- Fixed JPEG error handler [CSC]
- Fixed _tiffSizeProc in tif_c.c to load images with missing
stripcount.
- Transformations preserve info.dwType perameter [CSC]
- Createfromhandle() bugfix for 32bitfield images [JA]
- GetPixelColor bugfix when the coordinates are in the
outside of the image [Mpwolski]
Changes and major additions
- New CxFile class to read/write memory files and disk
files.
- Added support for Read/Write 32bpp TIFFs with apha
channel.
- New methods : Mix() [Mpwolski], Destroy(), IsIndexed()
- Read/Write support for Multipage TIFF [Abe]
- Read/Write support for Animated GIF (gif89a), with
comment, loops and disposal method
- Added xOffset and yOffset in CxImage::info
- Changed names : ReadFile -] Load ; SaveFile -] Save
- LoadResource uses CxFile
Project - Libraries - Demo application
- Updated BCMenu: version 3.03.
- LibTiff : enabled alpha (tif_getimage.c;Ln:212), enabled
ZIP_SUPPORT
- Pane view function with "shift+Lbutton"
- Updated LibTiff to 3.5.7
- New URL download dialog; WebGrab class by Chris Maunder
Version 3.21, 11 - Mar - 2002
Bugfixes
- Fixed memory leakage in CxImagePNG::Encode() [Rob Cass].
- Fixed CxImageICO::Decode() problem with 16 colors icons
[Rogier].
Changes and major additions
- CxImageICO reads/saves icons with transparent pixels.
- CxImageTIF::Decode() now takes care of the orientation
tag.
- New RotateLeft(), RotateRight(), Rotate180() functions
[MKVY].
- Faster Draw() implementation for images with transparency
[DJT].
Project - Libraries - Demo application
- Updated BCMenu: version 3.01.
- Replaced CreateThread() with _beginthread() to avoid small
memory leaks.
Version 3.09, 21 - Feb - 2002
Bugfixes
- Rotation() and Resample() handle the alpha channel. [MTA]
- CxImagePNG: Encode() merges the transparent color with the
alpha channel.
- Fixed exceptions and leaks in Draw() [RG]
- CxImageBMP now reads 32 bpp BITFIELD images.
- Decode() correctly loads multipage ICO and TIF files. [REC]
Version 3.02, 24 - Jan - 2002
Bugfixes
- CxImagePNG: fixed allocation bug in Decode()
- CxImagePNG: cast error saving 8 bpp images.
Version 3.00, 20 - Jan - 2002
Bugfixes
- fixed HSLtoRGB() conversion [F. Livraghi ]
- CxImagePNG: fixed deallocation bug in Encode() [Ranger]
- CxImagePNG: now reads 2 bpp images.
- CxImageBMP: fixed DPI rounding error [DIH]
- CreateFromHANDLE now handles the DPI information [Jeff Hu]
Changes and major additions
- New pixel ALPHA channel, overall opacity. (14 dedicated
functions)
- New Alpha Palette. (5 dedicated functions)
- New Region Selection (rectangle, ellipse, polygon - 11
dedicated functions).
- New "copypixels", "copyselection", "copyalpha" options for
constructor/Copy()
- New "errordiffusion" option for DecreasBPP().
- New Draw() implementation with support for alpha channel,
alpha palette, opacity, transparency.
- New PCX decoder CxImagePCX
- New TGA decoder/encoder CxImageTGA (with alpha channel)
- High resolution shrink for Resample() [Henrik Stellmann]
- CxImagePNG now reads/saves the transparency information
(palette and alpha channel)
Project - Libraries - Demo application
- Updated PNG library: Libpng version 1.2.1
- Free-hand selection with the left mouse button.
Version 2.00, 29 - Dec - 2001
Bugfixes
- fixed deadlock in GIF decoder
- PNG decoder reads 16 bit grayscale images.
- TIF decoder reads 4 bit grayscale images.
- fixed bug in CreateFromHBITMAP() [Wil Stark]
- Fixed PNG encoder bug, buffer allocation error with BW
images.
Changes and major additions
- MNG decoder handles the background information.
- TIF encoder now uses COMPRESSION_JPEG for 24 bit images.
- LoadResource(): added new parameter to work with dlls.
[Tuncer M. Ayaz]
- LoadResource() now works with network applications.
[Tuncer M. Ayaz]
- Changed CxImage() constructors, Copy() and Transfer()
interface and implementation [Kirk]
- Added CreateFromHANDLE() and CreateFromHBITMAP() in place
of the old constructors.
- Automatic file format recognition in ReadFile() [Patrick
Hoffmann]
- Faster Draw() implementation for transparent images.
(Thanks to Paul Reynolds and Ron Gery)
- New Get/SetJpegQuality() for JPEG and TIF encoders.
- New Get/SetXDPI(), Get/SetYDPI() for BMP and TIF formats.
- New Dither() function, with Floyd-Steinberg or
Ordered-Dithering BW conversion (Thanks to Kenny Hoff and Steve
McMahon)
- New functions : Crop(), SplitRGB(), SplitYUV(),
SplitHSL().
- New functions : Colorize(), Light(), Threshold(), Mean(),
Filter(), Dilate(), Erode().
Project - Libraries - Demo application
- Removed bad pixels from "Capture Window" [Qiang]
- New menus: Blur, Soften, Edge, Sharpen, Emboss, Dilate,
Erode, Threshold, Dither, ...
Version 1.25, 28 - Oct - 2001
Bugfixes
- Added support for 32 bit PNGs and 16 bit TIFs
Version 1.23, 15 - Oct - 2001
Bugfixes
- Fixed PNG reading interlaced and gray scale images. [DP]
- Fixed PNG saving 1 & 4 bit images. [DP]
- Fixed GIF saving and reading 1 & 4 bit images.
[DP]
- Added safe checks in CImageIterator::SetRow() [DP] and in
CxImagePNG::Decode() [yeonjun jeong]
Changes and major additions
- + Basic MNG encoder/decoder.
- + Get/SetTransIndex(): on the fly transparency for indexed
images (1, 4, 8 bpp) [TRK]
- + Get/SetTransColor(): on the fly transparency for RGB
images (24 bpp) [DP]
- + GIF encoder saves transparency information [TRK]
- + PNG encoder saves transparency information [DP]
- + SwapIndex() function for palette operations with
transparency [DP]
- + Resample() function [Steve McMahon]
- + Get/SetEscape() to quit the slow loops.
- + Get/SetProgress() to monitor the slow loops.
- + SetStdPalette() to create a standard palette for 256 and
16 colors images.
- + DecreaseBpp()/IncreaseBpp().
Project - Libraries - Demo application
- Transparency handling menu [DP]
- Fixed cast problem in Jcapimin.c, comparing
JPEG_LIB_VERSION [F. Livraghi]
- Resample, DecreaseBpp, IncreaseBpp menu [DP]
- Stopwatch and ProgressBar in the status bar [DP]
- Image computations are in a separate thread [DP]
- Added CQuantizer class to implement the color reduction
with the octree algorithm. [Jeff Prosise]
Version 1.10, 23 - Sep - 2001
Bugfixes
- Better exception handling in CxImagePNG &
CxImageBMP. [DP]
- Gdi resource leakage and memory corruption in
CxImage(HBITMAP). [TRK]
- Rotate() didn't handle transparency. [TRK]
- Fixed TIFF saving 1 & 4 bit images. [DP]
Changes and major additions
- Extended LoadResource() to TIFF format. [DP]
- - Removed info.szFileName : never used, and it's not an
image related information. [TRK]
- Reduced fopen/fclose clutter. [TRK][DP]
- Extended constructors with "imagetype" (for
future use). [TRK]
- Replaced GetPaletteIndex() with GetPaletteColor() : the
function returns a color, not an index.
- Replaced GetFileType() with GetType() : to avoid confusion
with the file extension.
- GrayScale() now always create an 8 bit gray scale image.
[DP]
- + Implemented transparency in CxImage::Draw(). Now Draw()
can also stretch the image, so Stretch() became obsolete. [TRK]
- + CxImage(FILE * stream) constructor. [TRK]
- + JPEG read CMYK format (adobe). [DP]
- + Transparency for PNG. [DP]
- + Enabled reading of RLE-compressed [TRK] and 16 &
32 bit BITFIELD [DP] bitmaps.
- + Unicode version for ReadFile/SaveFile.
- + MakeBitmap() function [Kurt Diesch]
- + JPEG can save 8 bit GrayScale images. [DP]
Project - Libraries - Demo application
- Removed MFC-dependency (#include [afxwin.h]) [TRK]
- Changed jconfig.h with HAVE_BOOLEAN stuff [TRK]
- + new tiff_c.c module in theTIFF library, for straight C
Runtime Library file functions. [TRK]
- Demo : now using Project|Dependencies.
- + Zoomin/Zoomout menu [DP]
- + Capture window menu [DP]
- + Acquire from TWAIN source [DP]
Version 1.01, 27 - Aug - 2001
Bugfixes
- PNG Read/Save exceptions with non dword aligned scan
lines.
- Mirror() doesn't handle the last column. [Brian R.
Zielinski]
Changes and major additions
- + GrayScale(). [TRK]
- + Rotate().
- + Read Multiple Image for TIFFs & ICONs
- + LoadResource(). [DP]
- Changed GIF read implementation. Added animation handling.
[TRK]
Project - Libraries - Demo application
- + Demo: added hatched background and Print functionality.
[TRK]
- + Undo/Redo menu. [DP]
Version 1.00, 07 - Aug - 2001
PEOPLE:
[DP] : Davide Pizzolato (www(dot)xdp(dot)it)
[TRK] : Troels Knakkergaard (TRK(at)lyngsoe(dot)com)
[Brian R(dot) Zielinski] : Brian R. Zielinski (brianz(at)digital(dot)risserimaging(dot)com)
[Kurt Diesch] : Kurt Diesch (kdiesch(at)enjoysoft(dot)com)
[F. Livraghi ] : Francesco Livraghi (info(at)ceccoing(dot)it)
[Steve McMahon] : Steve McMahon (steve(at)dogma(dot)demon(dot)co(dot)uk)
[Tuncer M. Ayaz] : Tuncer M. Ayaz (tuncer(dot)ayaz(at)gmx(dot)de)
[Kirk] : Kirk Korver (kirk(at)the-right-stuff(dot)com)
[Qiang] : Qiang Liu (liuq(at)ee(dot)washington(dot)edu)
[Patrick Hoffmann] : Patrick Hoffmann (hoffmann(at)novacom(dot)net)
[Wil Stark] : Wil Stark (wil_stark(at)agilent(dot)com)
[DIH] : Dominic I. Holmes (DIH(dot)Junk(at)DigitalFormation(dot)com)
[Henrik Stellmann] : Henrik Stellmann (henrik(dot)stellmann(at)volleynet(dot)de)
[Ranger] : Ranger (RangerMail(at)mail(dot)ru)
[Jeff Hu] : Jeff Hu (v120160(at)yahoo(dot)com(dot)tw)
[MTA] : Matthew Armstrong (ArmstroM(at)faro(dot)com)
[REC] : Robert Edward Caldecott (rec(at)kerridge(dot)com)
[RG] : Roberto Guerzoni (r(dot)guerzoni(at)infomotion(dot)mo(dot)it)
[MKVY] : Murali Krishna V Yelchuru (muralikrishnayv(at)yahoo(dot)com)
[Rogier] Rogier Reedijk (xs4free(at)wish(dot)net)
[Rob Cass] : Rob Cass (rcass(at)compusult(dot)nf(dot)ca)
[DJT] : Dave Turnbull (Camel) (dave(at)camel(dot)co(dot)uk)
[JA] : Jörgen Alfredsson (jorgen(dot)alfredsson(at)kamera(dot)com)
[Mpwolski] : Mwolski (mpwolski(at)hotmail(dot)com)
[CSC] : Chris Shearer Cooper (cscooper(at)frii(dot)com)
[Abe] : Abe (God(dot)bless(at)marihuana(dot)com)
[Ole Lange] : Ole Lange (ol(at)ams-soft(dot)de)
[vho] : Volker Horch (vhorch(at)gmx(dot)de)
[Kwyshell] : Kwyshell (kwyshell(at)yahoo(dot)com(dot)tw)
[Flanders] : Flanders (flanders(at)2moors(dot)freeserve(dot)co(dot)uk)
[Anatoly Ivasyuk] : Anatoly Ivasyuk (aivasyuk(at)dtlink(dot)com)
[T.Peck] : T. Peck (tpeck(at)roundwave(dot)com)
[Koray Geçici] : Koray Geçici (kgecici(at)tam(dot)net(dot)tr)
[Olivier Ansquer] : Olivier Ansquer (olivier(dot)ansquer(at)freesbee(dot)fr)
[elrod] : Mark B. Elrod (elrod(at)bluedoor(dot)com)
[Cui Ying Jie] : Cui Ying Jie (cuiyj(at)163(dot)net)
[dock] : dock (dock(at)cmmail(dot)com)
[handong] : handong (jhandong(at)netian(dot)com)
[candan] : candan (candan(at)mail(dot)pagic(dot)net)
[RJ] : Roger Jane (roger(dot)jane(at)microtest(dot)co(dot)uk)
[Robert Abram] : Robert Abram (robert(dot)abram(at)prgx(dot)com)
[dave] : dave(at)posortho(dot)com)
[CoreyRLucier] : CoreyRLucier(at)aol(dot)com)
[Carsten Leue] : Carsten Leue (carsten(dot)leue(at)iwr(dot)uni-heidelberg(dot)de)
[jh] : jh (jhprivate(at)fescomail(dot)net)
[lioucr] : lioucr (lioucr(at)yahoo(dot)ca)
[TomPeakz] : TomPeakz (topman(at)vip(dot)sina(dot)com)
[arnold wittenberg] : Arnold Wittenberg (a(dot)wittenberg(at)eramco(dot)nl)
[H. Muelner] : Helmut Muelner (hmuelner(at)iicm(dot)edu)
[jurgene] : Jürgen Eidt (jurgene(at)hotmail(dot)com)
[W. Morrison] : William Morrison (Bill(at)rosinante(dot)com)
[jaslet] : Bertrand Jaslet (jaslet(at)hotmail(dot)com)
[corwinkrisw] : corwinkrisw (corwinkrisw(at)yahoo(dot)com)
[gazzivan] : gazzivan (gazzivan(at)libero(dot)it)
[Stroupe David R] : Stroupe David R (x5011) (David(dot)Stroupe(at)siemens(dot)com)
[Frank Sowinski] : Frank Sowinski (Frank(dot)Sowinski(at)fujitsu-siemens(dot)com)
[JDL] : Jordan DeLozier (support(at)triosade(dot)com)
[Wassily Gibin] : Wassily Gibin (vasily(at)gibin(dot)net)
[osamu44] : osamu44 (osamu44(at)juno(dot)ocn(dot)ne(dot)jp)
[Sims] : Sims (siminfrance(at)hotmail(dot)com)
[Vitaly Titov] : Vitaly Titov (vitalyt(at)scanvecamiable(dot)com)
[Branko Drevenšek] / [BD] : Branko Drevenšek (branko(dot)drevensek(at)uni-mb(dot)si)
[Henry P.]: Henry P. (hdpham(at)allersoft(dot)com)
[Kristian Kratzenstein] : Kristian Kratzenstein (kristian(at)kratzenstein(dot)dyndns(dot)org)
[Basara] : Alexey Silinov (basara(at)in-cubus(dot)com)
[ralphw] : Ralph Walden (ralphw(at)exmsft(dot)com)
[Zahi Kapeluto] : Zahi Kapeluto (zahi(at)locationet(dot)com)
[Colin Urquhart] : Colin Urquhart (colin(dot)urquhart(at)primetv(dot)com(dot)au)
[oboolo] : Ludovic Baillet (oboolo(at)baillet(dot)org)
[yuandi] : yuandi (yuandi(at)www(dot)ps2love(dot)com)
[Schuberth] : Sebastian Schuberth (s(dot)schuberth(at)tu-bs(dot)de)
[Squidge] : Squidge (paulc(at)ibiblio(dot)org)
[sihun] : sihun (shsung(at)mbc(dot)co(dot)kr)
[H.C.Anderson] : Howard C. Anderson (howard(dot)anderson(at)anadigm(dot)com)
[chupeev] : alexander chupeev (chupeev(at)tmn(dot)ru)
[Lucian Ioan] : Lucian Ioan (xtndd(at)yahoo(dot)com)
[Chieh An Lu] : Chieh An Lu (calu(at)interactiveedge(dot)com)
[James Dickson] : James Dickson (Jamie(at)jdnet(dot)co(dot)uk)
[Richard Collins] : Richard Collins (rtc(at)steel-connections(dot)com)
[Igor Rosenberg] : Igor Rosenberg (rosenberg(at)infotrust.sk)
[DT] : Diego Tartara (dtartara(at)hotmail(dot)com)
[VATI] : Varga Attila (attila_varga(at)freemail(dot)hu)
[DPR] : DPR (info(at)brutzler(dot)de)
[Trifon] : Trifon (trifon(dot)alekov(at)dotrix(dot)be)
[Nick Holgate] : Nick Holgate (nick(at)barhop(dot)co(dot)uk)
[Kenneth Ballard] : Kenneth Ballard (ken_ballard(at)hotmail(dot)com)
[Thomas M. Boser] : Thomas M. Boser (tom(dot)boser(at)olimllc(dot)com)
[ignacio] : Ignacio Alvarez (ignacio(at)xentient(dot)com)
[Arkadiy Olovyannikov] : Arkadiy Olovyannikov (ark(at)msun(dot)ru)
[nipper] : nipper (nipper(at)rpnet(dot)cz)
[Hermann62] : Hermann62 (hild(at)smi-software)
[Michael Gandyra] : Michael Gandyra (M(dot)Gandyra(at)steinbichler(dot)de)
[Tacho] : Tacho (tacho_fortin(at)hotmail(dot)com
)
[Franco Gerevini] : Franco Gerevini
[Admir Hodzic] : Admir Hodzic (fathsoft(at)fathsoft(dot)com)
[Vladimír Kloucek] : Vladimír Kloucek (vladimir(dot)kloucek(at)samo(dot)cz)
[Cesar M] : Cesar Mello (cmello(at)gmail(dot)com)
[Eric Jesover] : Eric Jesover (eric(at)jesover(dot)net)
[Vladimir Kladov] : Vladimir Kladov (vk(at)kolmck(dot)net)
[RT] : Riccardo Trocca
[Adrian Cole] : Adrian Cole
[XBMC] : http://xbmc.org/
[Kai Sandner] : Kai Sandner
[Stefan Felkel] : Stefan Felkel
[temper] : temper
[altera] : altera
[Jean-Marie Epitalon] : Jean-Marie Epitalon
[Luc Langlois] : Luc Langlois
[Guido Vollbeding] : Guido Vollbeding
[wenfeng248] : wenfeng248
[brunom] : brunom
[Vitaly Ovchinnikov] : Vitaly Ovchinnikov
[Rezak] : Rezak
[Ken Yee] : Ken Yee
[Sebastian Gottschalk] : Sebastian Gottschalk
[zjh821224] : zjh821224