ImgSource v5 - What's New
We're about done with the development for IS v5, and are just finishing up the documentation and other bits of supporting material; so it's time to tell the world what we've done:
The really big changes
ISEffects is no more. All of the ISEffects functions have been moved into ImgSource.
Multithreaded processing has been added for most common image processing functions. This includes:
- All resizing modes in is5_ResizeImage, and many modes of other resizing functions
- Rotations (all non-"quick" methods)
- Polygon warp
- Image overlay (is5_OverlayImage)
- Sobel filter
- Bilateral filter
- Alpha blend
- Image tranformations (a.k.a. ISEffects xform engine)
- Motion, radial and zoom blur
- The core morphological functions: erosion and dilation (1-bit and 8-bit). And since all other morpho functions are derived from these, the speed ups apply to all morpho functions.
- RGB/A => grayscale. This is perhaps the simplest function in all of ImgSource, and we wanted to see if it was even possible for a multi-threaded version to run faster. It does!
- Many ImgSource functions, especially the "effects" functions (formerly of ISEffects), use the functions listed above, internally; so most of those will run faster, too.
In our testing, multi-threaded processing reduces execution time for these functions by anywhere from 30% to 60%. We've tested it on Win32 and x64, Intel and AMD, single and double-core processors, and there are speedups in all cases. We expect even better results from quad-core processors. We will be adding multi-threaded processing to additional functions, in the future.
is5_Initialize is now required (even if you don't have a valid license key), because it initializes the thread pool.
is5_Exit is now required in all applications which use ImgSource. It closes the thread pool and releases the worker threads. Failing to call is5_Exit will definitely cause memory leaks, and may cause a crash when your application exits - this is especially critical for users of the ImgSource DLL, due to the way orphaned threads created in a DLL are destroyed by Windows.
The is5_DrawText* functions have been sped-up, when you're using Windows' text smoothing.
The motion blur, radial blur and zoom blur effects have been put into their own functions and completely rewritten, and now give very nice results. They were terrible before, we apologize. They've also been multi-threaded.
The smooth variation of is5_DrawLineOnImage has been vastly improved. Now it's a high-quality anti-aliased line.
is5_GetHSVColorMatchMaskFromImage has been given three new modes of operation.
Added a flag in is5_EmbossRGB to allow better handling of edge pixels.
is5_ReadImage can now read directly to 1-bit, for all images types and bit depths.
Added a flag to force ImgSource to reduce fractions in the "rational" data types, when fetch EXIF tags.
Added CALS and ICO to the list of types identified by is5_GuessFileType
Reworked the parameter lists of all functions for uniformity.
Cleaned-up many compiler warnings related to integer size conversions, especially when building for x64.
Reworked the static libs' use of pre-compiled headers in VS03,05,08. This speeds-up build times tremendously.
Added a page to the help file which documents all the added functions, removed functions and changed parameter lists. This should make migrating from ImgSource v4 much easier. And just to prove that it can be done, and to give is5 a good workout, we upgraded our ThumbNailer application from IS v4 to v5 in less than four hours. ThumbNailer made over 600 different ImgSource / ISEffects calls - now all calling into ISv5.
Completely rewrote the help file.
is5_ShuffleChannels - quickly reorder the channels in an image
is5_SetImageChannel - set a single channel in an image (handy when using alpha masks)
A set of functions has been added to control the thread pool (how large is the pool, how many threads a function can use, timeouts/callback interaction, etc.). The defaults should be fine, but you know how we like to give you options !
Added all ISEffects functions.
is5_AlphaBlendColor - fix when blending into RGBA without setting a blend mode flag
is5_AlphaBlendRGBA - fixed a bug in mode 4
DIB resize - fix to resize method selection (was using the wrong modes in some cases)
added rowstride parameters to RGB/HSL conversion functions
reverted back to libPng1.2.22 (1.2.40 was not working out)
fixed a bug in PSD reading when reading a 1-bit image to 24-bits.
fixed a bug in TIFF one-line-at-a-time writing
fixed some bugs in the grayscale to 1-bit conversion function (is5_GrayscaleTo1Bit)
fixed a bug in 1-bit morphological erosion.
Upgrades and Cost
If you've purchased a new ImgSource license, or an upgrade license, since the beginning of 2010, the upgrade is free.
An upgrade from previous ImgSource versions (v2,v3, or v4) is $40.
A new license for ImgSource v5 will be $69.95.
There will no longer be a charge for x64 capability.
Source code subscriptions are $100, for a six month subscription.
Source Subscription Upgrades
- If you purchased an ImgSource source subscription after 1/1/2010, you will get a free ImgSource v5 source subscription.
- If you registered ImgSource before 1/1/2010, but still have a valid source ImgSource v4 subscription as of the ImgSource v5 release date, you will need to upgrade your ImgSource v4 license to v5 ($40). When you do that, we will give you a free 6-month ImgSource v5 source subscription. Your ISv4 subscription will continue, unaffected.
We hope to release ImgSource v5 by the end of this month (Feb, 2010). Stay tuned!
If you would like to try a pre-release version, let me know.
Last edited by Admin; 12-13-2011 at 09:21 PM.
Reason: Changed upgrade rates