Version history
New in SDK 2.0
The Lumia Imaging SDK version is not directly backward compatible with earlier versions.
To be upgraded, app source must be modified to reflect the namespace changes detailed in the "Namespace reorganization" section.
New Filters
- GaussianNoiseFilter,
- HueSaturationLightnessFilter
- SaturationLightnessFilter
- RgbMixerFilter
- ScaleFilter
- SharpnessFilter
- VibranceFilter
- RedEyeRemovalFilter
Namespace reorganization
The Lumia Imaging SDK types have been re-organized into the following namespaces:
Lumia.Imaging: Basic functionality and commonly used types in the SDK.
Lumia.Imaging.Adjustments: Functionality for performing photographic adjustments; for example adjustment of levels, hue, saturation and brightness in an image.
Lumia.Imaging.Artistic: Functionality for adding artistic effects to an image; for example sepia toning or a cartoon graphics effect on an image.
Lumia.Imaging.Custom: Support types for extending the SDK with user-defined image sources, filters, effects, and more.
Lumia.Imaging.Compositing: Functionality for image composition and segmentation; for example image blending, object extraction and foreground/background segmentation.
Lumia.Imaging.Transforms: Functionality for transforming the image in various ways; for example scaling, rotating and cropping.
New in filters
GrayscaleFilter: The calculation of the grayscale result can now be controlled using three (R, G, B) color factors and a constant.
OilyFilter: The strength of the effect can now be controlled using the property OilBrushSize, where a bigger brush size produces wider strokes and larger smudges.
New in effects
BlendEffect: An upgrade of the old BlendFilter, this is now an effect making it easier to use. There are also new and significant performance improvements for some common use cases.
CachingEffect: In rare cases, an app may want to explicitly cache a bitmap that holds the result of a sub-graph of effects. Previously this involved splitting the graph, rendering to a Bitmap manually, and restarting the graph with a BitmapImageSource. This effect removes the need to do that, and may be more efficient than the manual approach.
ImageAligner: Two new properties have been added, UseColorCorrection and AlignmentQuality.
LensBlurEffect: Several new properties have been added:
- FocusAreaEdgeMirroring: Allows the user to have more control over the sampling when blurring pixels near the edge of the focus area.
- FocusEdgeSoftening: Allows the user to have more control on how the edge between the focus and blurred area is treated.
- KernelMapType: Allows the developer more flexibility when composing the kernel map. Specifically, the new option is LensBlurKernelMapType.Continuous, which allows for continuous indexes instead of the standard black and white style mask.
- PointLightStrength: This property existed before on each ILensBlurKernel, but now it has been
moved to the Effect level so the same property applies for all kernels.
Interfaces
- IActiveFrame: A new interface, implemented by some image sources in the SDK, adding support for images that contain multiple "frames," such as GIF animations. The interface allows the user to select the "active" frame currently used in processing.
Decorators
- AnimationFrame: Adds properties for individual frames, such as when encoding animated GIF
ImageSources
- ExtractObjectImageSource: An image source that represents a sub-image extracted by ObjectExtractor.
- BitmapProviderImageSource: An "indirect" image source providing a bitmap asynchronously. Complements BufferProviderImageSource.
Enums
- AlignmentQuality
- OutputColorSpacing
- LensBlurKernelMapType
- LensBlurFocusEdgeSofteningMode
- LensBlurFocusAreaEdgeMirroring
Other
- New blend functions have been added. See the reference section for more detailed descriptions of each:
- Lineardodge
- Linearlight
- Vividlight
- SignedDifference
- AutoFixAnalyzer
- Analyzes an image and produces curves for the SaturationLightnessFilter and parameters for the TemperatureAndTintFilter, which, when applied, will improve the visual quality of the image.
- MaskAnnotationType
- Determines how the InteractiveSegmentationMaskRectifier uses the annotations (foreground or background).
- Curve
- Several utility functions have been added.
- RampedRange**
- Specifies a ramped range that allows configuring soft fade-in and fade-outs.
- ArgbColorCurves
- A collection of four Curve objects, one per each ARGB channel.
- CurveMinMaxPair
- A pair of min and max curves. Used in the utility methods Interpolate and EstimateInterpolationFactor of Curve.
- ObjectExtractor
- Extracts objects from an image using a mask image.
- EffectGroupAdapter
- Helps create groups of existing effects and enables them to act like a single effect.
- CustomImageSourceAdapter
- Helps create custom bitmap based image sources.
- CustomEffectAdapter
- Helps create custom bitmap based image effects.
Deprecated – to be removed in next major release
- BlendFilter
- ILockableMemory
- BufferFactory
- ImageProvideInfo
- ILensBlurKernel.PointLightStrength
- DelegatingImageSource
- DelegatingEffect
New in SDK 1.2
Nokia Imaging SDK version 1.2 beta is 100 percent backward compatible with version 1.0 and 1.1, so anything currently working with 1.0 and 1.1 should work with 1.2 beta as well. Beta label is considered only for the new functionality in version 1.2, and in particular Windows Phone 8.1 development, as the Windows Phone 8.1 SDK is not final either.
The key new features and additions include:
Windows Phone 8.1 support
Illustrating the potential of the Windows platform convergence, the SDK is available on Windows 8.1 and on Windows Phone 8.1, derived from a single codebase with no API breaks, making it possible for you to reuse a lot of your code when developing apps across Windows and Windows Phone platforms. Filter Effects, Filter Explorer, and Real-time Filter Demo sample projects have been updated to include universal app solution for Windows and Windows Phone 8.1.
New effects and APIs
- GIF Renderer API enables creating single image GIFs, as well as animated GIFs.
- Image Aligner API enables removing unwanted shaking caused by minor movements from a sequence of images.
- Image Aligner and GIF Renderer APIs together make it possible to create Cinemagraph-like, shareable short movies. With the Windows Phone 8.1 burst capture mode, creating mini movies is now very quick.
- Local Blending enables blending smaller images into bigger images with specified position, size, and orientation.
- Custom Filter Base API enables selective processing of image regions instead of the full image also for the custom filters, allowing them to run as memory efficiently as the pre-made SDK filters.
See also the new Image Sequencer and updated Real-time Blend Demo sample projects to see the new APIs in action.
New in SDK 1.1
Nokia Imaging SDK version 1.1 is 100 percent backward compatible with version 1.0, so anything currently working with 1.0 should work with 1.1 as well.
Windows 8.1 support
Since the Lumia family now includes a Windows RT 8.1 tablet, the Lumia 2520, we ported the library to the Windows platform. Developers can now can create magical imaging experiences with the SDK for Windows 8.1 (x86 and ARM):
- Single codebase: The API surface between Windows Phone and the Windows is shared. If you are familiar with the Imaging SDK for Windows Phone, you know how to use it for the Windows. You can share a lot of code beneath the UI layer.
- Processor neutral: The SDK will work regardless of the processor architecture, x86 or ARM. NuGet can be used to easily deploy the right package for the platform.
See the following samples for more details: Quick Start for Windows, Filter Effects for Windows, and Filter Explorer for Windows.
Interactive Foreground Segmenter
The new version of the SDK adds a filter API for picking the foreground/background from an image. Developers can use this component to create a UI where users tap, swipe, or point at the object boundaries and the API will figure out which objects belong to foreground and vice versa. This is often used to perform a background swap or to blur the background with Bokeh. See the Interactive Foreground Segmenter (Effects) and Lens Blur sample for more details.
Lens Blur
A new effect, Lens Blur (also known as Bokeh), is a digital recreation of the familiar Bokeh effect so often used in professional photography. The Nokia Imaging SDK makes applying the new Bokeh effect or blending with a mask quick and easy. See the Lens Blur Effect (Effects) and Lens Blur sample for more details.
HDR Effect
A new effect that can be applied to an image to create stunning and vibrant photorealistic color effects similar to HDR, or with more conservative settings, auto enhance the image colors. See the HDR Effect (Effects) and Filter Effects sample for more details.
Other new features and improvements
In addition to the new features mentioned above, there are also other improvements and additions such as an AlphaToGreyscale filter, a new Blend mode with mask, and lots of memory and performance optimization under the hood.
Documentation improvements
There are other documentation improvements in addition to samples and documentation for the new features in SDK version 1.1, including:
- C# examples added for all classes in the API reference.
- C++ and Visual Basic syntax added to the API reference.
New in SDK 1.0 - Graduated from beta
A successful beta phase was run, with the Future Capture competition resulting in amazing things done with the Imaging SDK, as well as valuable feedback. As a result of that feedback, the most requested features have been implemented: changing filter parameters dynamically, implementing your own filters, as well as amending features such as support for a chroma Key filter.
To support the new features and to fully align with WinRT conventions, changes to the API were necessary, which means that apps written for the beta will need to be migrated to use the new release. Developers can keep using the beta if it works for them; however, we do recommend migrating to the new release. For information about migrating, please see the how to upgrade guide, presenting the key differences between the beta and 1.0.