Nokia's Imaging SDK: Building picture perfect imaging apps

Nokia's Imaging SDK: Building picture perfect imaging apps

Summary: Nokia's Windows Phone imaging tools have left beta. Here's how you'd use them to build your first computational photography app.


I've been playing with a Nokia 1020 for a couple of weeks, getting to grips with the phone as a camera.

There have been plenty of reviews of the device itself, but there's a lot going on under the hood — especially in its imaging tools: I've already written about the smartphone as a platform for computational photography, and how Nokia is using its imaging software to differentiate its devices from the competition.

Colorify Pro, built using the Nokia Imaging SDK.

Nokia's imaging software is one of the reasons why Microsoft is buying its devices and services business, as Julie Larson Green told UBS' Global Technology Summit: "We're removing seams in the experience. The Nokia camera is amazing, but it sits on top of the OS. We have multiple camera apps, multiple storage places, multiple places to upload. […] Those are things above the OS today we can bring down to the OS and make available to all apps, not just apps on Nokia devices."

A lot of what Nokia is doing in its imaging apps comes from its new Imaging SDK, a set of tools that simplify building camera apps on Windows Phone devices. Built using technologies Nokia bought in with its Scalado acquisition, the Imaging SDK has been used to build Nokia's camera app, its Cinemagraph animated GIF creation tool and its Creative Studio editing tool. What's most useful is that it's not just for Nokia devices, but can be used on any Windows Phone 8 devices, as it's a WinPRT library with C# and C/C++ interfaces. It's also free to use.

There's a lot in the Imaging SDK. It starts by giving you a set of tools for quickly previewing images, including rapidly displaying just part of an image. That's topped off with 52 different filters and effects that can be combined to give more complex effects. It's fast and, more importantly for mobile devices, doesn't use much memory.

Using the SDK is easy enough. Start by adding the Libraries to your project, before using filters on an image in an editing session, and then writing out the final processed version. Of course, it's not quite as simple as that makes it seem, but the process of using the SDK is a lot easier than writing your own imaging tools from scratch (as I discovered when writing an app to read book barcodes and upload ISBN data to an online catalogue service). There's plenty of sample code on Nokia's developer site, which walks you through the process of defining and building image pipelines that let you chain effects.

29-11-2013 18-46-57
A selection of the filters available in the Imaging SDK.

You're not limited to working with existing images, either, as you can work with the camera stream as well as JPEGs and bitmaps. A FilterFactory is used to create the filters you're using, though several can be grouped into a FilterGroup. One useful feature of the Imaging SDK is the ability to apply filters to a display image before applying them to a full resolution image. That's important when camera resolutions are so much greater than the screen — and where devices have limited memory. Apps can be more responsive, and users will get the image they want, where they want it.

Computational photography is a powerful tool, and the current generation of phone hardware has the processing horsepower to do much more than just emulate a camera. Take one of the Imaging SDK's more interesting features: support for chromakey filtering. Who needs a full edit suite, when you can make your phone a virtual studio for video podcasts, for special effects, or even for live streams?

Libraries like this simplify the process of app development, wrapping complex mathematical operations in easy to use calls and functions. That way you can concentrate on the user experience, and leave the heavy lifting to Nokia's engineers. One thing's for sure: this just for building another Instagram. The effects you can use are much more complex, and the ability to chain filters can make the results even more complex.

All you have to do is look at the list of filters to get an idea for an imaging app. How about using chromakey to pick out all the elements of a single colour, then using the blend filter to merge the result with a grey-scale version of the original picture to give a colour-pop effect? Or perhaps using the crop filter to quickly ready an image for use on Twitter?

While 53 filters may not cover everything you want to use, the real power of the Imaging SDK is its imaging pipeline. It simplifies creating and editing images, as well as merging and saving data. Once you start to think what you can do with that pipeline, there's a lot of scope here for creativity — beyond filters and into the world of real-time imaging applications.

Further reading

Topics: Windows Phone, Nokia, Software Development, The Microsoft-Nokia Deal

Simon Bisson

About Simon Bisson

Simon Bisson is a freelance technology journalist. He specialises in architecture and enterprise IT. He ran one of the UK's first national ISPs and moved to writing around the time of the collapse of the first dotcom boom. He still writes code.

Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.


Log in or register to join the discussion
  • It is very apparent

    that "good enough" is fine with you. I'm confident you apply it to every aspect of your life.
  • For other platforms, you can use ImageMagick

    This sounds nice, and it will be a good addition to the toolkit - but all these capabilities are also in the hands of Android and iOS developers too, in the form of ImageMagick, which is also free (under an Apache 2.0 license.)