Please note that as of October 24, 2014, the Nokia Developer Wiki will no longer be accepting user contributions, including new entries, edits and comments, as we begin transitioning to our new home, in the Windows Phone Development Wiki. We plan to move over the majority of the existing entries. Thanks for all your past and future contributions.

Basic Kaleidoscope Filter Recipe (Nokia Imaging SDK)

From Wiki
Jump to: navigation, search

This recipe simulates a basic kaleidoscope view using inbuilt filters from the Nokia Imaging SDK.

See Also
WP Metro Icon WP8.png
Article Metadata
Tested with
SDK: Windows Phone 8.0 SDK
Devices(s): Nokia Lumia 920, Nokia Lumia 520
Windows Phone 8
Dependencies: Nokia Imaging SDK 1.2
Created: Rob.Kachmar (28 Jun 2014)
Last edited: Rob.Kachmar (19 Aug 2014)



This article shows how to simulate a basic kaleidoscope view using inbuilt filters from the Nokia Imaging SDK. We simply rotate the image 90 degrees and apply a mirror filter twice.

The article includes the recipe source code, instructions on how it can be used and tested, performance measurements and a gallery.

Basic Kaleidoscope

Source code

The code for creating the effect, the source, renderer and target is described in #How to use the filter and Core concepts (Nokia Developer Library). The fragment below shows only the "recipe-specific" code for adding the filters to the List<IFilter>.

var filters = new List<IFilter>();
// "Basic Kaleidoscope"
filters.Add(new RotationFilter(90));
filters.Add(new MirrorFilter());
filters.Add(new RotationFilter(90));
filters.Add(new MirrorFilter());

How to use the filter

This recipe uses only filters based on IFilter. These are combined by simply adding them to an IFilter list, which is then passed to a FilterEffect along with the source. The code fragment below shows the general strategy (this is explained in more detail in Nokia Developer SDK - Core concepts).

var filters = new List<IFilter>();
//The recipe filters are added here
using (var source = new StreamImageSource(stream))
using (var filterEffect = new FilterEffect(source) { Filters = filters })
using (var renderer = new WriteableBitmapRenderer(filterEffect, writeableBitmap))
await renderer.RenderAsync();

Testing the filter

The easiest way to test the recipes is to add them to the Test Apps for Viewing Custom Filters (Nokia Imaging SDK) (a fork of the Real Time Filter Demo).


The code has been released with the standard MIT License.


This section lists the approximate frame rate range (in frames-per-second) obtained by using the recipe in the Test framework.

Device FPS (Frames Per Second)
Lumia 920 18-19 FPS
Lumia 520 14-15 FPS


This page was last modified on 19 August 2014, at 02:55.
67 page views in the last 30 days.