·
Changed: function imColorHSI_Smax
removed from public, now it is used only internally. HSI space
now uses S already normalized between 0-Smax.
·
Fixed:
imColorHSI2RGB conversion.
·
Fixed: imConvertDataType when
converting a floating point to integer, there were rounding problems.
·
Fixed: loading or saving two files of the same format at the same time.
·
New: imlua_avi, imlua_wmv
and imlua_jp2 libraries so the respective formats can be dynamically loaded
using require.
·
Changed: IMPORTANT
- the "imlua_cd" library moved from IM to
CD under the name "cdluaim".
·
Changed: IMPORTANT
- the support services (Downloads, Mailing List and CVS) moved from LuaForge to SourceForge.
·
Changed: All dll8 and dll9 DLLs now have a Manifest file that specifies the
correct MSVCR*.DLL.
·
Changed: Makefiles for UNIX now uses a compact version
of Tecmake that does not need any installation, just
type "make".
·
Changed: premake files are used now only internally
and were removed from the distribution.
·
Changed: Copyright notice modified to reflect
the registration at INPI (National Institute of Intellectual Property in
Brazil). License continues
under the same terms.
·
Fixed: reviewed and fixed the parameter checking of all IMLua
processing functions. Also reviewed all IMLua
parameter checking. Thanks to Lucas Lorensi.
·
Fixed: loading of TIFF format with old JPEG compression.
·
Fixed: loading and saving of PNM format when data in textual format and gray
values are greatter than 255.
·
Fixed: Bicubic and Zero order interpolation for all
geometric operations for pixels near the image border when increasing image
size.
·
Fixed:
Lua samples.
·
Fixed: ICON format in 64 bits Linux.
·
New: read support for ECW using the ERMapper ECW
JPEG 2000 SDK.
·
Changed: libTIFF updated to version 3.8.2.
·
Changed: libPNG updated to version 1.2.22.
·
Changed: libJasper updated to libGeoJasper
1.4.0 (using Jasper version 1.900.1). Better support for counter progress, Geo
tags and several speed improvements. New GeoTIFFBox and XMLPacket attributes.
·
Changed: renamed macro imPutImage to imcdCanvasPutImage, and added canvas as the first
parameter.
·
Changed: renamed the imImage Lua methods to image:cdCanvasPutImageRect, image:wdCanvasPutImageRect
and image:cdCanvasGetImage,
and added canvas as the first parameter. Now imlua_cd
depends on cdlua from CD version 5.0.
·
Changed: metatable names in Lua
are now the same as the C struct names.
·
Changed: new read EXIF tags support in TIFF format (no write support yet).
Renamed attributes "GeoTransMatrix" and
"IntergraphMatrix", to "GeoTransformationMatrix" and "Intergraph TransformationMatrix" for libGeoTIFF
compatibility. Better support for known TIFF tags. New support for reading one
band of a multiband gray image in TIFF format. New support
for DNG files.
·
Fixed: imConvertDataType gamma function when converting real to/from integer.
·
Fixed: small error at the image border when resampling, rotating or other geometric operations.
·
Fixed: imProcessCanny invalid division by zero when input image is all zero.
·
Fixed: imFileReadImageInfo when loading MAP images with a scrambled gray palette. They were
incorrectly converted to
GREY.
·
Fixed: support for IM_ALPHA and 32 bpp
in ICO format.
·
Fixed: number of lines returned in imProcessHoughLinesDraw.
·
New: imProcessRotateRef to rotate
relative to a reference point.
·
New: geometric distortion
imProcessSwirl.
·
New: imProcessInterlaceSplit.
·
New: function imGaussianKernelSize2StdDev.
·
New: convolutions imProcessBarlettConvolve, imProcessPrewittConvolve, imProcessSplineEdgeConvolve, imProcessConvolveDual and
imProcessConvolveSep.
·
New: "im_kernel.h" module with simple functions to create know
pre-defined kernels like sobel, laplacian,
gaussian, etc.
·
New: imVideoCaptureSetInOut to
control input and output in capture devices.
·
New: function imBinMemoryRelease
to release internal memory allocated by the BinMemory
file when saving.
·
New: functions for capture device information: imVideoCaptureDeviceExDesc,
imVideoCaptureDevicePath and imVideoCaptureDeviceVendorInfo.
·
New: function imFileOpenAs
to open a file of a specific format.
·
New: functions imFormatRegisterInternal
and imFormatRemoveAll to control
format registration.
·
Changed: imProcessGaussianConvolve to
used separable convolution and now is stddev is
negative will use its magnitude as the kernel size. Removed Rep
functions imProcessGaussianConvolveRep,
imProcessDiffOfGaussianConvolveRep and imGaussianStdDev2Repetitions.
·
Changed: imProcessBlend to use an
image instead of a constant. Old function renamed to imProcessBlendConst.
·
Changed: imFileHandle prototype. Now
the function has an index parameter to specify which handle it should return. index=0 is always an imBinFile*
handle. Use index=1 or greater to return other internal handles that are format
dependent.
·
Changed: the Removed the include "im.h" to
not include "im_lib.h". "im_lib.h" must be included
when necessary.
·
Changed: imAnalyzeMeasureArea and imAnalyzeMeasurePerimeter prototypes to
include the number of regions as a parameter. Fixed: these functions to
internally initialize the results array to zero (this was necessary and not
documented).
·
Changed: imProcessFlip and imProcessMirror so they can be done
in-place.
·
Fixed: missing implementation of imVideoCaptureOneFrame
in Lua 5.
·
Fixed: imAnalyzeFindRegions when
pixel is at the width-1 column.
·
Fixed: file format identification when TIFF identification
failed was not closing the file.
·
Fixed: imAnalyzeMeasurePerimeter
when perimeter line is at the first or last lines. Thanks to Takeshi
Mitsunaga.
·
Fixed: invalid return value in imVideoCaptureConnect
in Lua 5.
·
Fixed: imProcessRotate for IM_MAP
images.
·
Fixed: Lua binding of imFileImageSave, wrong parameters order.
New: image:Save(filename,
format) alias for imImage objects.
·
Fixed: BMP format implementation when reading and writing
RGBA 32 bits images.
·
Fixed: imFileLoadImageFrame and imFileLoadBitmapFrame index parameter in Lua.
·
Fixed: alpha channel allocation in imImage.
·
New: Download, Discussion List, Submission of Bugs, Support Requests and
Feature Requests, are now available thanks to the LuaForge
site.
·
New: Binding for Lua 5
·
New: support for alpha in imImage.
·
New: organization of the documentation.
·
New: in ICON format the TransparencyIndex is used
to for IM_MAP images without an alpha channel.
·
New: video capture functions: imVideoCaptureFormatCount,
imVideoCaptureGetFormat and imVideoCaptureSetFormat, to access the
available capture video formats.
·
New: functions imFileLoadImageFrame
and imFileLoadBitmapFrame to reuse
the image data when loading.
·
New: function imFileImageSave.
·
New: function imImageCreateBased.
·
New: imProcessInsert.
·
New: compression functions imCompressDataLZF
and imCompressDataUnLZF, using libLZF.
·
New: module for imBinFile, IM_FILEHANDLE
that allows to access an already opened file using the
system file handle as file name. Thanks to Frederico Abraham.
·
Changed: in JPEG file format YcbCr are now
automatically converted to RGB when loaded. RGB images were already
automatically converted to YCbCr when saved. Now this
behavior can be controlled by the AutoYCbCr
attribute.
·
Changed: the imAnalyzeFindRegions to
include an additional parameter that control if regions touching the border are
computed or not. The function imProcessPrune
now will only eliminate the regions in the selected size range.
·
Changed: third party libraries, updated to newest versions: libExif,
libTIFF, libPNG and zlib. Added OLD JPEG support in libTIFF.
·
Changed: optimization flags to ON when building the library in all platforms.
·
Changed: imProcessPerimeterLine, imAnalyzeMeasurePerimeter, imAnalyzeMeasurePerimArea, imAnalyzeMeasureCentroid and imAnalyzeMeasurePrincipalAxis to consider
pixels that touch the borders.
·
Changed: macro name cdPutBitmap to imPutBitmap.
·
Changed: function names imImageLoad and imImageLoadBitmap, to imFileImageLoad
and imFileImageLoadBitmap.
·
Fixed: overflow in imCalcImageStatistics
fo IM_INT and IM_USHORT
images.
·
Fixed: error management in system file I/O in UNIX.
·
Fixed: some small defines for 64-bits compatibility in libExif,
libPNG and libJPEG.
·
Fixed: incorrect interpretation of 16 bit data from PNG
files.
·
Fixed: imFileReadImageInfo can be
called many times with the same index that will return the correct result
without accessing the file again.
·
Fixed: small bug in sample iupglcap.
·
Fixed: TIFF format read for images with multiple bands in ExtraSamples.
·
Fixed: ICON format can_sequence was
0.
·
Fixed: imProcessMergeHSI and imProcessSplitHSI documentation, and implementation
for IM_BYTE images.
·
Fixed: imProcessRangeContrastThreshold,
imProcessLocalMaxThreshold and imProcessRankClosestConvolve when
processing near the border.
·
Fixed: invalid file permissions in UNIX when saving a new file.
·
Fixed:
name for imProcessLocalMaxThresEstimate.
·
Fixed: imProcessReduceBy4 for images with odd width and/or
height.
·
Fixed: imAttribTableSet when
replacing an attribute (thanks to Takeshi Mitsunaga).
·
Fixed: memory leaks in imConvertToBitmap
and imConvertDataType (thanks to
Takeshi Mitsunaga).
·
Fixed: imProcessZeroCrossing for
the last pixel column (thanks to Takeshi Mitsunaga). Also fixed
for some crossings that were lost.
·
Fixed: imProcessGrayMorphConvolve
for IM_FLOAT images with IM_FLOAT kernel
(thanks to Takeshi Mitsunaga).
·
New: Image Transform
imProcessDistanceTransform.
·
New: group of functions Image Analysis: imAnalyzeFindRegions,
imAnalyzeMeasureArea, imAnalyzeMeasurePerimArea, imAnalyzeMeasureCentroid, imAnalyzeMeasurePrincipalAxis, imAnalyzeMeasureHoles, imProcessPerimeterLine,
imAnalyzeMeasurePerimeter, imProcessPrune, imProcessFillHoles.
·
New: imConvertMapToRGB to help
loading data as RGB.
·
New: sample iupglcap.
·
New: imProcessRenderChessboard
and imProcessRenderGrid.
·
Changed: imProcessThreshold, imProcessRangeContrastThreshold and imProcessLocalMaxThreshold now also supports IM_USHORT and IM_INT
data types.
·
Changed: the default color conversion to binary so it can be done for all color
spaces.
·
Changed: im_process.h to split into 4 files: im_process_pont.h, im_process_loc.h,
im_process_glo.h, im_process_ana.h.
But it still exists and includes the new files for compatibility.
·
Changed: the border extensions in several types of convolution. Rank convolution do not extend the borders. Binary morphology use zero extension. Gray morphology do
not extend the borders.
·
Fixed: file read with bitmap conversion when original data changes only data
type.
·
Fixed: rank convolution operations that did not accept even kernel sizes.
·
Fixed: imProcessHoughLinesDraw that
was ignoring some lines.
- New:
utility functions imPaletteHighContrast, imImageLoadImage and imImageLoadBitmap.
- New: operation imProcessNormalizeComponents.
- Changed: name imProcessGaussianConvolve
to imProcessGaussianConvolveRep. New:
operation imProcessGaussianConvolve that uses
a float kernel. New: utility functions imGaussianStdDev2Repetitions and imGaussianStdDev2KernelSize.
- Changed: name imProcessDiffOfGaussianConvolve
to imProcessDiffOfGaussianConvolveRep. New:
operation imProcessDiffOfGaussianConvolve that
uses a float kernel.
- Changed: IM_GAMUT_BRIGHTCONT
parameters to the interval [-100,100]. Fixed: IM_GAMUT_EXPAND
and IM_GAMUT_BRIGHTCONT normalization.
- Changed: logical operations, flag IM_BIT_NOT
replaced by operation imProcessBitwiseNot.
- Changed: imImageSetAttribute
count can be -1 for zero terminated data.
- Fixed: operations imProcessBitwiseNot
and imProcessNegative for IM_BINARY
images.
- Fixed: the color_mode_flags
parameter interpretation by imFileReadImageData.
- Fixed: imProcessEqualizeHistogram
and imProcessExpandHistogram for color images.
- Fixed: imProcessMultipleStdDev.
- Fixed: imProcessDifusionErrThreshold
for IM_GRAY images.
- Fixed: "KRN" format, internal
format is topdown.
- Fixed: initialization of TGA image_count.
- Improved compatibility
with the old version, it was missing the load of Map images with imLoadRGB.
- The FFTW code was from version 2.1.3, not from 2.1.5 as suposed,
it was updated. The FFT functions were condensed in only one file with an "#ifdef" for FFTW
version 2 and 3. The FFT functions also were renamed to remove the
"W" that belongs only to the FFTW library.
- The SetAttribute functions now accept NULL
in data to remove the attribute.
- New: imProcessCrossCorrelation and imProcessAutoCorrelation functions.
- The imCalcGrayHistogram function now can
calculate the histogram of IM_MAP and IM_BINARY images.
A major
rewrite of the library. Everything changed, check the manual, but backward compatibility is
kept for old applications. A new API more flexible, new formats, support for
attributes and video, image capture and image processing. New: color spaces and
data types. The library now got a professional look for scientific
applications.
Correction
of bug in resolution reading and writing for format JPEG.
Correction
of bug in the default GIF compression. Two new callbacks: transparency color index
for GIF files and image description for TIFF files.
Change in the treatment of
LZW compression in formats TIFF and GIF. Now compression is no longer the
default.
Close function of the
access driver for files in memory corrected. JPEG library updated to 6b.
Correction of a problem with the reading of some JPEG files.
The definition of the
counter callback was changed to inform, in a parameter, the type of access
being performed, either reading or writing. Type imCallback
defined to make type casting easier when using function imRegisterCallback.
Correction of a problem with the makefile
in UNIX, which was generating link errors in some platforms.
Correction of a problem
with internal memory liberation when reading Map images in TIFF files.
Conversion RGB to Map is now made using the algorithm implemented by LibJPEG. The algorithm of imResize
was improved for cases in which the size is being reduced instead of increased.
Correction of a problem with functions imImageInfo
and imFileFormat: when the provided
file was not in a format recognized by IM, there was an error in format TGA
which caused these functions to access an invalid memory area.
The library was virtually
rewritten to implement a new structure which allowed greater flexibility,
simplifying the addition of new formats. Formats TGA, PCL,
JPEG and LED were added to the list of
supported formats, and new functions were added: imMap2RGB, imRGB2Gray,
imMap2Gray, imResize,
imStretch.
Small corrections to increase portability. Changes in return codes. Identifiers were created to return codes and predefined parameters. Online manual concluded.