AForge.NET Framework 2.2.3 Release Notes
Version updates and fixes:
- Fixed registered issues/requests:
- Issue 217: Support for Alpha component in Image.Drawing methods;
- Issue 238: Build errors and warnings under VS 2010;
- Issue 251: Cannot build from SVN;
- Issue 252: Rotate filter incorrectly calculates the size of the image after rotation;
- Issue 261: VideoFileWriter should implement IDisposable;
- Issue 262: Convolution filter generating AccessViolationException for 640x480 16bpp gray scale image;
- Issue 264: Support for the alpha channel in convolution filters;
- Issue 266: GA: Donate thread-safety to chromosomes;
- Issue 269: Support basic authentication when connecting to IP Cameras.
- Updated project/solution files of the framework's sources, tool and unit tests to VS.NET 2010 (C#/C++ express 2010).
- Updated project/solution files of all sample to use C# express edition 2010.
- Added ThreadSafeRandom class which is a wrapper for the System.Random class providing thread safety for random numbers
- Added implementation of Run Length Smoothing Algorithm
- Improved performance of grayscale filters so those are about ~4.5 times faster doing conversion of 24/32 bpp color
images to 8 bpp grayscale images, which is achieved by replacing floating point calculation with integer calculation.
- Fixing Convolution filter so it processes correctly 16bpp grayscale images. Previously there was a bug causing 16 bpp
grayscale images to be processed as 24/32 colour image.
- Adding Width and Height properties to IntegralImage.
- Added IntegralImage.GetHaarXWavelet() and IntegralImage.GetHaarYWavelet(), which calculate horizontal and vertical Haar wavelets.
- Convolution filter is extended to support processing of alpha channel for 32 bpp and 64 bpp images, which is controlled
by ProcessAlpha property (set to false by default). For filters like Blur, Mean and GaussianBlur the property is set to
true by default, so the alpha channel gets blurred also.
- Fixed rotation filters, so those don't shift image by one pixel, which was easy to notice when rotating by -90/90 angles.
The bug was caused by the fact that for edge pixels source position was calculated one pixel out of image's bounds.
- Added support for alpha blending for methods of AForge.Imaging.Drawing class.
- Updated classes of AForge.Math namespaces to use new ThreadSafeRandom class, so random numbers generation in those
classes becomes thread safe.
- Updated classes of AForge.Genetic namespaces to use new ThreadSafeRandom class, so random numbers generation in those
classes becomes thread safe.
- Changing IVideoSource.BytesReceived property type from int to long, so it may fit higher values.
- Fixing AsyncVideoSource so it does full deep cloning of bitmap provided by nested video source instead of using
System.Drawing.Image.Clone(), which does not seem to be reliable.
- Added ForceBasicAuthentication
property for MJPEGStream and JPEGStream classes, which allows to force HTTP basic
authentication by adding required HTTP header.
- Allow specifying of video stream bit rate when open video file using VideoFileWriter, so user could trade between
video quality and file size.
- Implemented IDisposable interface for VideoFileReader and VideoFileWriter classes.
- Updating external FFMPEG library to version from November 30 2011. Updated AForge.Video.FFMPEG to build fine with
the new FFMPEG build.
- Fixed BytesReceived property of FileVideoSource and VideoCaptureDevice, so those provide number of provided bytes.
- Fixing few bugs in Blobs Explorer sample application:
- If convex hull contain 3 point or less, then don't try finding its quadrilateral;
- If object's edge contains only one pixel, then need to draw it individually instead of using Graphics.DrawLines() method.
See release notes of 2.2.2 version to get information
about changes in the previous version.