Share via


Version history

New in SDK 3.0

Lumia imaging SDK has been updated with GPU capabilities and Universal Windows Platform (UWP) support. The development was focused on enabling these two scenarios with other improvements on the side.

The Lumia Imaging SDK version 3.0 is not directly backward compatible with earlier versions. The main difference is that we have changed the way the image processing graph is organized. We have moved away from the concept of filters; all filters are now instead effects. For information about how to upgrade from 2.0 to 3.0, see How to upgrade guide.

Lumia Imaging SDK 3.0 is split into three NuGets. You always install only one, depending on the platform you are targeting. For example, if you want to develop for the new Universal Windows Platform (UWP), you should use Lumia Imaging SDK UWP. For Windows Phone 8.1 projects, use Lumia Imaging SDK Win81. For Universal Windows Platform (UWP) JavaScript projects use Lumia Imaging SDK Javascript

With SDK version 3.0, the Silverlight application framework is no longer supported. For Windows Phone 8.0 development, use Lumia Imaging SDK 2.0 that is available in NuGet.org.

New classes and Windows 10 interoperability

In Windows 10, new classes SoftwareBitmap and Direct3DSurface have been added to make it easier to work with images. We have added an image source and a renderer class for each of them. This allows the application to interact with the new Windows 10 types in a direct and efficient way.

New building block interfaces such as IImageProvider2 and IImageConsumer2 have also been added. These interfaces improve and extend the image provider model that the Imaging SDK exposes; however, the developers can continue using IImageProvider and IImageConsumer when not implementing custom types. For more information, see Custom sources, effects and effect groups.

Hardware accelerated effects

The effects in the list below are capable of being rendered by GPU, which vastly improves the rendering time.

Lumia.Imaging.Adjustments

  • BlurEffect
  • BrightnessEffect
  • ColorAdjustGpuEffect
  • ColorBoostEffect
  • ColorizationEffect
  • ContrastEffect
  • CurvesEffect
  • ExposureEffect
  • GrayscaleEffect
  • HueSaturationEffect
  • HueSaturationLightnessEffect
  • LevelsEffect
  • RgbLevelsEffect
  • SaturationLightnessEffect
  • SharpnessEffect
  • TemperatureAndTintEffect
  • WhiteBalanceEffect
  • VibranceEffect

Lumia.Imaging.Artistic

  • AntiqueEffect
  • ColorSwapEffect
  • EmbossEffect
  • FogEffect
  • GrayscaleNegativeEffect
  • MirrorEffect
  • MonoColorEffect
  • NegativeEffect
  • PosterizeEffect
  • SepiaEffect
  • SolarizeEffect
  • SplitToneEffect

Lumia.Imaging.Compositing

  • AlphaToGrayscaleEffect
  • BlendEffect
  • CachingEffect
  • ChromaKeyEffect

Lumia.Imaging.Transforms

  • CropEffect
  • FlipEffect
  • ReframingEffect
  • RotationEffect
  • ScaleEffect

Lumia.Imaging

  • CachingEffect
  • PassThroughEffect

New in SDK 2.0

The Lumia Imaging SDK version is not directly backward compatible with earlier versions.

To be upgraded, the 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 color factors (R, G, B) 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, which makes 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, that adds 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 an animated GIF.

ImageSources

  • ExtractObjectImageSource: An image source that represents a sub-image extracted by ObjectExtractor.
  • BitmapProviderImageSource: An "indirect" image source that provides a bitmap asynchronously. Complements BufferProviderImageSource.

Enums

  • AlignmentQuality
  • OutputColorSpacing
  • LensBlurKernelMapType
  • LensBlurFocusEdgeSofteningMode
  • LensBlurFocusAreaEdgeMirroring

Other

  • New blend functions have been added. For detailed descriptions of each function, see the reference section:
  • 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 the configuration of 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 to create groups of existing effects and enables them to act like a single effect.
  • CustomImageSourceAdapter: Helps to create custom bitmap based image sources.
  • CustomEffectAdapter: Helps to 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 is 100 percent backward compatible with version 1.0 and 1.1, so anything that currently works with 1.0 and 1.1 should work with 1.2 as well.

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 8.1 and Windows Phone 8.1 platforms.

New effects and APIs

  • GIF Renderer API enables the creation of single image GIFs, as well as animated GIFs.
  • Image Aligner API enables the removal of 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 the blending of smaller images into bigger images with specified position, size, and orientation.
  • Custom Filter Base API enables the 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.

New in SDK 1.1

Nokia Imaging SDK version 1.1 is 100 percent backward compatible with version 1.0, so anything that currently works with version 1.0 should work with version 1.1 as well.

Windows 8.1 support

Since the Lumia family now includes the Windows RT 8.1 tablet and the Lumia 2520, we ported the Lumia Imaging SDK to the Windows 8.1 platform. Developers can now can create magical imaging experiences with the SDK for Windows 8.1.

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 the foreground and vice versa. This is often used to perform a background swap or to blur the background with Bokeh. For more details, see the Interactive Foreground Segmenter and Lens Blur guide in Core Concepts.

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.

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.

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:

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 recommend migrating to the new release. For information about migrating, see the how to upgrade guide, which presents the key differences between the beta and 1.0.