SlideShare a Scribd company logo
1 of 27
Download to read offline
LUMIA APP LABS #18

INTRODUCING
THE NOKIA IMAGING
SDK 1.0
Berthier Lemieux
Technology Wizard @ Nokia
What is Nokia Imaging SDK
Native Windows Phone 8 Library, Accessible from C#, VB and
C++ Windows Phone 8 Projects
• Includes more then 50 ready to use image processing filters
and effects, with various adjustment parameters
• Library doesn’t require special knowledge of image processing
algorithms or techniques
• Partial JPEG decoding - using RAJPEG technology, access image
data without decoding a whole JPEG image for a fast previews,
application of effects, rotation, and cropping of high resolution
images.
•
Cool apps using the SDK
6tag

One Shot

Gigapixel image browser
(wiki article)

Image filters

Real-time camera
filters

Zooming in a
400MP image
List of Filters and Effects I
List of Filters and Effects II
List of Filters and Effects III
Chaining filters

Original image
+Milky
+Flip
+Crop
+Lomo
What’s new in the 1.0 version
•
•
•
•

Major change of library architecture
Parameters of the filters can be changed without rebuilding rendering pipeline
Supports creation of the totally custom filters
New functionality : ChromaKey and Gradients
ChromaKey
Blend modes
1st image

Blend mode:
Color Burn

Blend mode:
Color

2nd image

Blend mode:
Add
TOOLS TO CREATE GRADIENTS
•
•

Built-in functionality of the SDK v1.0
Low memory footprint

Radial
Gradient

Linear
Gradient
General Architecture Overview
•

Library contains three architectural building blocks:
•

•

•

•
•

Image sources (such as bitmaps, streams,
files)
Effect (e.g. 50+ filters, including inbuilt and
custom)
Renderers (outputs bitmaps or files)

Combining these building blocks, developer creates
rendering pipeline
Once pipeline is created, it is possible to change filter
parameters, or their sequence.

Image Source
Filter Effects
MagicPen Filter
Flip Filter
Rotation Filter
Renderer
Modifying filters parameters
Parameters can be changed without rebuilding the whole effect
pipeline. New to the 1.0 version!
•

•

But keep in mind that:
•
Rendering is asynchronous, parameters can’t be changed while
rendering.
•
Be specially careful with UI controls (like sliders), they can fire at any
time.
Useful trick: use a queue of Actions.
UI (Slider)

Imaging
SDK

ValueChanged event
Rendering a
new preview

ValueChanged event

ValueChanged event

Rendering a
new preview
Modifying filters parameters
Defining the queue:
Queue<System.Action> _toDo = new Queue<System.Action>();

When resource is busy, enqueue:
_toDo.Enqueue(
() => { _warpFilter.Level = newValue; }
);

The “magic” is here, the lambda
expression is queued

When resource is free, Apply all the actions in the queue :
while (_toDo.Count > 0)
{
Action action = _toDo.Dequeue();
action();
}
await _renderer.RenderAsync();

Executing the lambda expression
Image Source Implementations
Source type

Class of source

ImageSource Name

Stream

System.IO.Stream

StreamImageSource

Imaging SDK
Bitmap

Nokia.Graphics.Imaging.Bitmap

BitmapImageSource

Windows Buffer

Windows.Storage.Streams.IBuffer

BufferImageSource

Camera

Windows.Phone.Media.Capture.
ICameraCaptureDevice

CameraPreviewImageSource

Flat Color

Windows.Ui.Color

ColorImageSource

File

Windows.Storage.IStorageFile

StorageFileImageSource

Image Source
Filter Effects
Cartoon Filter
Fog Filter
Contrast Filter
Renderer
Renderers
Image Source
Destination
type

Class of destination

ImageSource Name

Imaging SDK Bitmap

Nokia.Graphics.Imaging.Bitmap

BitmapRenderer

Writeable Bitmaps
( for XAML Image )

WriteableBitmap

WriteableBitmapRenderer

JPEG

Windows.Storage.Streams.IBuffer

Filter Effects

JpegRenderer

Cartoon Filter
Fog Filter
Contrast Filter
Renderer
Implementing Custom Effect
•
•

•

•

Example implements new class, based
on CustomEffectBase
Developer should override OnProcess
method, which gives direct access to
individual pixels
PixelRegion is used as helper class to
iterate through pixels of source and
target
In this case, CustomRGBFilter doubles
each RGB component value
LUMIA APP LABS #18

THANK YOU!
QUESTIONS?
More information:
Nokia Lumia Developer's Library

http://developer.nokia.com/Resources/Library/Lumia/
A global app development competition
for Nokia Lumia and Windows Phone 8.
It’s your chance to win prizes that will get you noticed,
including trips to MWC, DVLUP XPs, devices, promotions
and much more.
Image & Photo Master Mission
& 10 other missions still open.

ENTER NOW > Nokia.ly/create
WIKI COMPETITION
Nokia Imaging and Big UI Wiki Competition 2013Q4

Write great original articles about using Nokia
Imaging SDK 1.0 with both C++ and C# APIs.
Win a Lumia 1520 device for your articles or a
Lumia 925 for your feedback
ENTER NOW > http://nokia.ly/wikicomp2013Q4
ANNEXES
Adding Nokia Imaging SDK to the Project
•

Simplest way to add Nokia Imaging SDK to your project is through NuGet
Adding Nokia Imaging SDK to the Project
•

Searching NuGet for available Nokia packages and selecting SDK
Adding Nokia Imaging SDK to the Project
•

Using Configuration Manager for editing available platforms in solution
Adding Nokia Imaging SDK to the Project
•

Selecting and removing Any CPU platform
General Overview of Required Steps
•
•
•
•
•
•
•
•
•
•

Step 1: Include Nokia Imaging SDK Libraries into your project
Step 2: Prepare source image: uncompressed image as WriteableBitmap,
AudioVideoCaptureDevice or compressed image as IBuffer, StorageFile
Step 3: Create image source as instance of IImageSource
Step 4: Create enumeration (such as IList) of filters instances IFilter in required sequence
Step 5: Create FilterEffect with associated IImageSource instance
Step 6: Attach enumeration of IFilter the FilterEffect
Step 7: Create renderer with associated FilterEffect and target output
Step 8: Use asynchronous methods RenderAsync in order to generate output
Remember: official documentation is part of the Lumia Developer Library
http://developer.nokia.com/Resources/Library/Lumia/#!nokia-imaging-sdk.html

More Related Content

What's hot

The Evolution of Continuous Delivery at Scale @ Linkedin
The Evolution of Continuous Delivery at Scale @ LinkedinThe Evolution of Continuous Delivery at Scale @ Linkedin
The Evolution of Continuous Delivery at Scale @ LinkedinC4Media
 
DevOps environment with OpenStack and NetApp
DevOps environment with OpenStack and NetAppDevOps environment with OpenStack and NetApp
DevOps environment with OpenStack and NetAppB1 Systems GmbH
 
How HDRP unlocks graphics – Unite Copenhagen 2019
How HDRP unlocks graphics – Unite Copenhagen 2019How HDRP unlocks graphics – Unite Copenhagen 2019
How HDRP unlocks graphics – Unite Copenhagen 2019Unity Technologies
 
Cloud Native Serverless Java — Orkhan Gasimov
Cloud Native Serverless Java — Orkhan GasimovCloud Native Serverless Java — Orkhan Gasimov
Cloud Native Serverless Java — Orkhan GasimovGlobalLogic Ukraine
 
The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014
The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014
The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014Puppet
 
Continuous Delivery on Kubernetes Using Spinnaker
Continuous Delivery on Kubernetes Using SpinnakerContinuous Delivery on Kubernetes Using Spinnaker
Continuous Delivery on Kubernetes Using SpinnakerWSO2
 

What's hot (7)

The Evolution of Continuous Delivery at Scale @ Linkedin
The Evolution of Continuous Delivery at Scale @ LinkedinThe Evolution of Continuous Delivery at Scale @ Linkedin
The Evolution of Continuous Delivery at Scale @ Linkedin
 
DevOps environment with OpenStack and NetApp
DevOps environment with OpenStack and NetAppDevOps environment with OpenStack and NetApp
DevOps environment with OpenStack and NetApp
 
How HDRP unlocks graphics – Unite Copenhagen 2019
How HDRP unlocks graphics – Unite Copenhagen 2019How HDRP unlocks graphics – Unite Copenhagen 2019
How HDRP unlocks graphics – Unite Copenhagen 2019
 
Cloud Native Serverless Java — Orkhan Gasimov
Cloud Native Serverless Java — Orkhan GasimovCloud Native Serverless Java — Orkhan Gasimov
Cloud Native Serverless Java — Orkhan Gasimov
 
moving to qgis
moving to qgismoving to qgis
moving to qgis
 
The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014
The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014
The Evolving Design Patterns of Puppet Enterprise - PuppetConf 2014
 
Continuous Delivery on Kubernetes Using Spinnaker
Continuous Delivery on Kubernetes Using SpinnakerContinuous Delivery on Kubernetes Using Spinnaker
Continuous Delivery on Kubernetes Using Spinnaker
 

Similar to LUMIA APP LABS #18: INTRODUCING NOKIA IMAGING SDK 1.0

LUMIA APP LAB #15: USING THE NOKIA IMAGING SDK
LUMIA APP LAB #15: USING THE NOKIA IMAGING SDKLUMIA APP LAB #15: USING THE NOKIA IMAGING SDK
LUMIA APP LAB #15: USING THE NOKIA IMAGING SDKMicrosoft Mobile Developer
 
Building Top-Notch Androids SDKs
Building Top-Notch Androids SDKsBuilding Top-Notch Androids SDKs
Building Top-Notch Androids SDKsrelayr
 
Docker in Production: How RightScale Delivers Cloud Applications
Docker in Production: How RightScale Delivers Cloud ApplicationsDocker in Production: How RightScale Delivers Cloud Applications
Docker in Production: How RightScale Delivers Cloud ApplicationsRightScale
 
7.imaging on windows phone
7.imaging on windows phone7.imaging on windows phone
7.imaging on windows phoneNguyên Phạm
 
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...Ambassador Labs
 
Create React Native App vs Expo vs Manually
Create React Native App vs Expo vs ManuallyCreate React Native App vs Expo vs Manually
Create React Native App vs Expo vs ManuallyEugene Zharkov
 
Creating a Scalable and Decentralized API Management Architecture with WSO2 A...
Creating a Scalable and Decentralized API Management Architecture with WSO2 A...Creating a Scalable and Decentralized API Management Architecture with WSO2 A...
Creating a Scalable and Decentralized API Management Architecture with WSO2 A...WSO2
 
Developing Windows Phone Apps with the Nokia Imaging SDK
Developing Windows Phone Apps with the Nokia Imaging SDKDeveloping Windows Phone Apps with the Nokia Imaging SDK
Developing Windows Phone Apps with the Nokia Imaging SDKNick Landry
 
Introducing Pebble SDK 2.0
Introducing Pebble SDK 2.0Introducing Pebble SDK 2.0
Introducing Pebble SDK 2.0Cherie Williams
 
10 Steps to Cloud Happiness
10 Steps to Cloud Happiness10 Steps to Cloud Happiness
10 Steps to Cloud HappinessAll Things Open
 
Red Hat Forum Benelux 2015
Red Hat Forum Benelux 2015Red Hat Forum Benelux 2015
Red Hat Forum Benelux 2015Microsoft
 
Forge - DevCon 2016: Drawings! Drawings! Everywhere!
Forge - DevCon 2016: Drawings! Drawings! Everywhere!Forge - DevCon 2016: Drawings! Drawings! Everywhere!
Forge - DevCon 2016: Drawings! Drawings! Everywhere!Autodesk
 
Ansible Tower | Docker | Cisco ACI
Ansible Tower | Docker | Cisco ACIAnsible Tower | Docker | Cisco ACI
Ansible Tower | Docker | Cisco ACIJoel W. King
 
Introduction to DL-BUILDER
Introduction to DL-BUILDERIntroduction to DL-BUILDER
Introduction to DL-BUILDERssuserc37b5e
 
March 2014 Meetup - Nokia X Tech Session
March 2014 Meetup - Nokia X Tech SessionMarch 2014 Meetup - Nokia X Tech Session
March 2014 Meetup - Nokia X Tech SessionBlrDroid
 
Angular meetup 2 2019-08-29
Angular meetup 2   2019-08-29Angular meetup 2   2019-08-29
Angular meetup 2 2019-08-29Nitin Bhojwani
 

Similar to LUMIA APP LABS #18: INTRODUCING NOKIA IMAGING SDK 1.0 (20)

LUMIA APP LAB #15: USING THE NOKIA IMAGING SDK
LUMIA APP LAB #15: USING THE NOKIA IMAGING SDKLUMIA APP LAB #15: USING THE NOKIA IMAGING SDK
LUMIA APP LAB #15: USING THE NOKIA IMAGING SDK
 
Building Top-Notch Androids SDKs
Building Top-Notch Androids SDKsBuilding Top-Notch Androids SDKs
Building Top-Notch Androids SDKs
 
Lumia App Labs: Nokia Imaging SDK 1.1
Lumia App Labs: Nokia Imaging SDK 1.1Lumia App Labs: Nokia Imaging SDK 1.1
Lumia App Labs: Nokia Imaging SDK 1.1
 
Docker in Production: How RightScale Delivers Cloud Applications
Docker in Production: How RightScale Delivers Cloud ApplicationsDocker in Production: How RightScale Delivers Cloud Applications
Docker in Production: How RightScale Delivers Cloud Applications
 
7.imaging on windows phone
7.imaging on windows phone7.imaging on windows phone
7.imaging on windows phone
 
Intro to DotNetNuke 6
Intro to DotNetNuke 6Intro to DotNetNuke 6
Intro to DotNetNuke 6
 
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
 
Create React Native App vs Expo vs Manually
Create React Native App vs Expo vs ManuallyCreate React Native App vs Expo vs Manually
Create React Native App vs Expo vs Manually
 
Creating a Scalable and Decentralized API Management Architecture with WSO2 A...
Creating a Scalable and Decentralized API Management Architecture with WSO2 A...Creating a Scalable and Decentralized API Management Architecture with WSO2 A...
Creating a Scalable and Decentralized API Management Architecture with WSO2 A...
 
Developing Windows Phone Apps with the Nokia Imaging SDK
Developing Windows Phone Apps with the Nokia Imaging SDKDeveloping Windows Phone Apps with the Nokia Imaging SDK
Developing Windows Phone Apps with the Nokia Imaging SDK
 
Introducing Pebble SDK 2.0
Introducing Pebble SDK 2.0Introducing Pebble SDK 2.0
Introducing Pebble SDK 2.0
 
Announcing Pebble SDK 2.0
Announcing Pebble SDK 2.0Announcing Pebble SDK 2.0
Announcing Pebble SDK 2.0
 
10 Steps to Cloud Happiness
10 Steps to Cloud Happiness10 Steps to Cloud Happiness
10 Steps to Cloud Happiness
 
Red Hat Forum Benelux 2015
Red Hat Forum Benelux 2015Red Hat Forum Benelux 2015
Red Hat Forum Benelux 2015
 
Forge - DevCon 2016: Drawings! Drawings! Everywhere!
Forge - DevCon 2016: Drawings! Drawings! Everywhere!Forge - DevCon 2016: Drawings! Drawings! Everywhere!
Forge - DevCon 2016: Drawings! Drawings! Everywhere!
 
Ansible Tower | Docker | Cisco ACI
Ansible Tower | Docker | Cisco ACIAnsible Tower | Docker | Cisco ACI
Ansible Tower | Docker | Cisco ACI
 
Docker12 factor
Docker12 factorDocker12 factor
Docker12 factor
 
Introduction to DL-BUILDER
Introduction to DL-BUILDERIntroduction to DL-BUILDER
Introduction to DL-BUILDER
 
March 2014 Meetup - Nokia X Tech Session
March 2014 Meetup - Nokia X Tech SessionMarch 2014 Meetup - Nokia X Tech Session
March 2014 Meetup - Nokia X Tech Session
 
Angular meetup 2 2019-08-29
Angular meetup 2   2019-08-29Angular meetup 2   2019-08-29
Angular meetup 2 2019-08-29
 

More from Microsoft Mobile Developer

Intro to Nokia X software platform 2.0 and tools
Intro to Nokia X software platform 2.0 and toolsIntro to Nokia X software platform 2.0 and tools
Intro to Nokia X software platform 2.0 and toolsMicrosoft Mobile Developer
 
Location based services for Nokia X and Nokia Asha using Geo2tag
Location based services for Nokia X and Nokia Asha using Geo2tagLocation based services for Nokia X and Nokia Asha using Geo2tag
Location based services for Nokia X and Nokia Asha using Geo2tagMicrosoft Mobile Developer
 
Lumia App Labs: Lessons learned from 50 windows phone 8 design consultations
Lumia App Labs: Lessons learned from 50 windows phone 8 design consultationsLumia App Labs: Lessons learned from 50 windows phone 8 design consultations
Lumia App Labs: Lessons learned from 50 windows phone 8 design consultationsMicrosoft Mobile Developer
 
Windows Phone 8 speech: parliamo con la nostra app
Windows Phone 8 speech: parliamo con la nostra appWindows Phone 8 speech: parliamo con la nostra app
Windows Phone 8 speech: parliamo con la nostra appMicrosoft Mobile Developer
 
La pubblicazione di un'applicazione sullo store
La pubblicazione di un'applicazione sullo storeLa pubblicazione di un'applicazione sullo store
La pubblicazione di un'applicazione sullo storeMicrosoft Mobile Developer
 
Il pattern mvvm come strutturare al meglio il vostro progetto
Il pattern mvvm come strutturare al meglio il vostro progettoIl pattern mvvm come strutturare al meglio il vostro progetto
Il pattern mvvm come strutturare al meglio il vostro progettoMicrosoft Mobile Developer
 
Lens app trasformare il telefono in una fotocamera
Lens app trasformare il telefono in una fotocameraLens app trasformare il telefono in una fotocamera
Lens app trasformare il telefono in una fotocameraMicrosoft Mobile Developer
 

More from Microsoft Mobile Developer (20)

Intro to Nokia X software platform 2.0 and tools
Intro to Nokia X software platform 2.0 and toolsIntro to Nokia X software platform 2.0 and tools
Intro to Nokia X software platform 2.0 and tools
 
Lumia App Labs: Lumia SensorCore SDK beta
Lumia App Labs: Lumia SensorCore SDK betaLumia App Labs: Lumia SensorCore SDK beta
Lumia App Labs: Lumia SensorCore SDK beta
 
Nokia Asha from idea to app - Imaging
Nokia Asha from idea to app - ImagingNokia Asha from idea to app - Imaging
Nokia Asha from idea to app - Imaging
 
Healthcare apps for Nokia X and Nokia Asha
Healthcare apps for Nokia X and Nokia AshaHealthcare apps for Nokia X and Nokia Asha
Healthcare apps for Nokia X and Nokia Asha
 
Push notifications on Nokia X
Push notifications on Nokia XPush notifications on Nokia X
Push notifications on Nokia X
 
DIY Nokia Asha app usability studies
DIY Nokia Asha app usability studiesDIY Nokia Asha app usability studies
DIY Nokia Asha app usability studies
 
Lessons learned from Nokia X UI reviews
Lessons learned from Nokia X UI reviewsLessons learned from Nokia X UI reviews
Lessons learned from Nokia X UI reviews
 
Location based services for Nokia X and Nokia Asha using Geo2tag
Location based services for Nokia X and Nokia Asha using Geo2tagLocation based services for Nokia X and Nokia Asha using Geo2tag
Location based services for Nokia X and Nokia Asha using Geo2tag
 
HERE Maps for the Nokia X platform
HERE Maps for the Nokia X platformHERE Maps for the Nokia X platform
HERE Maps for the Nokia X platform
 
Nokia In-App Payment - UX considerations
Nokia In-App Payment - UX considerationsNokia In-App Payment - UX considerations
Nokia In-App Payment - UX considerations
 
Introduction to Nokia Asha SDK 1.2 (beta)
Introduction to Nokia Asha SDK 1.2 (beta)Introduction to Nokia Asha SDK 1.2 (beta)
Introduction to Nokia Asha SDK 1.2 (beta)
 
UX considerations when porting to Nokia X
UX considerations when porting to Nokia XUX considerations when porting to Nokia X
UX considerations when porting to Nokia X
 
Kids' games and educational app design
Kids' games and educational app designKids' games and educational app design
Kids' games and educational app design
 
Nokia X: opportunities for developers
Nokia X: opportunities for developersNokia X: opportunities for developers
Nokia X: opportunities for developers
 
Intro to Nokia X software platform and tools
Intro to Nokia X software platform and toolsIntro to Nokia X software platform and tools
Intro to Nokia X software platform and tools
 
Lumia App Labs: Lessons learned from 50 windows phone 8 design consultations
Lumia App Labs: Lessons learned from 50 windows phone 8 design consultationsLumia App Labs: Lessons learned from 50 windows phone 8 design consultations
Lumia App Labs: Lessons learned from 50 windows phone 8 design consultations
 
Windows Phone 8 speech: parliamo con la nostra app
Windows Phone 8 speech: parliamo con la nostra appWindows Phone 8 speech: parliamo con la nostra app
Windows Phone 8 speech: parliamo con la nostra app
 
La pubblicazione di un'applicazione sullo store
La pubblicazione di un'applicazione sullo storeLa pubblicazione di un'applicazione sullo store
La pubblicazione di un'applicazione sullo store
 
Il pattern mvvm come strutturare al meglio il vostro progetto
Il pattern mvvm come strutturare al meglio il vostro progettoIl pattern mvvm come strutturare al meglio il vostro progetto
Il pattern mvvm come strutturare al meglio il vostro progetto
 
Lens app trasformare il telefono in una fotocamera
Lens app trasformare il telefono in una fotocameraLens app trasformare il telefono in una fotocamera
Lens app trasformare il telefono in una fotocamera
 

Recently uploaded

A Costly Interruption: The Sermon On the Mount, pt. 2 - Blessed
A Costly Interruption: The Sermon On the Mount, pt. 2 - BlessedA Costly Interruption: The Sermon On the Mount, pt. 2 - Blessed
A Costly Interruption: The Sermon On the Mount, pt. 2 - BlessedVintage Church
 
No.1 Amil baba in Pakistan amil baba in Lahore amil baba in Karachi
No.1 Amil baba in Pakistan amil baba in Lahore amil baba in KarachiNo.1 Amil baba in Pakistan amil baba in Lahore amil baba in Karachi
No.1 Amil baba in Pakistan amil baba in Lahore amil baba in KarachiAmil Baba Naveed Bangali
 
Unity is Strength 2024 Peace Haggadah + Song List.pdf
Unity is Strength 2024 Peace Haggadah + Song List.pdfUnity is Strength 2024 Peace Haggadah + Song List.pdf
Unity is Strength 2024 Peace Haggadah + Song List.pdfRebeccaSealfon
 
原版1:1复刻莫纳什大学毕业证Monash毕业证留信学历认证
原版1:1复刻莫纳什大学毕业证Monash毕业证留信学历认证原版1:1复刻莫纳什大学毕业证Monash毕业证留信学历认证
原版1:1复刻莫纳什大学毕业证Monash毕业证留信学历认证jdkhjh
 
Seerah un nabi Muhammad Quiz Part-1.pdf
Seerah un nabi  Muhammad Quiz Part-1.pdfSeerah un nabi  Muhammad Quiz Part-1.pdf
Seerah un nabi Muhammad Quiz Part-1.pdfAnsariB1
 
Culture Clash_Bioethical Concerns_Slideshare Version.pptx
Culture Clash_Bioethical Concerns_Slideshare Version.pptxCulture Clash_Bioethical Concerns_Slideshare Version.pptx
Culture Clash_Bioethical Concerns_Slideshare Version.pptxStephen Palm
 
Deerfoot Church of Christ Bulletin 4 21 24
Deerfoot Church of Christ Bulletin 4 21 24Deerfoot Church of Christ Bulletin 4 21 24
Deerfoot Church of Christ Bulletin 4 21 24deerfootcoc
 
No.1 Amil baba in Pakistan amil baba in Lahore amil baba in Karachi
No.1 Amil baba in Pakistan amil baba in Lahore amil baba in KarachiNo.1 Amil baba in Pakistan amil baba in Lahore amil baba in Karachi
No.1 Amil baba in Pakistan amil baba in Lahore amil baba in KarachiAmil Baba Mangal Maseeh
 
No 1 astrologer amil baba in Canada Usa astrologer in Canada
No 1 astrologer amil baba in Canada Usa astrologer in CanadaNo 1 astrologer amil baba in Canada Usa astrologer in Canada
No 1 astrologer amil baba in Canada Usa astrologer in CanadaAmil Baba Mangal Maseeh
 
Unity is Strength 2024 Peace Haggadah_For Digital Viewing.pdf
Unity is Strength 2024 Peace Haggadah_For Digital Viewing.pdfUnity is Strength 2024 Peace Haggadah_For Digital Viewing.pdf
Unity is Strength 2024 Peace Haggadah_For Digital Viewing.pdfRebeccaSealfon
 
Asli amil baba in Karachi Pakistan and best astrologer Black magic specialist
Asli amil baba in Karachi Pakistan and best astrologer Black magic specialistAsli amil baba in Karachi Pakistan and best astrologer Black magic specialist
Asli amil baba in Karachi Pakistan and best astrologer Black magic specialistAmil Baba Mangal Maseeh
 
Sawwaf Calendar, 2024
Sawwaf Calendar, 2024Sawwaf Calendar, 2024
Sawwaf Calendar, 2024Bassem Matta
 
No.1 Amil baba in Pakistan amil baba in Lahore amil baba in Karachi
No.1 Amil baba in Pakistan amil baba in Lahore amil baba in KarachiNo.1 Amil baba in Pakistan amil baba in Lahore amil baba in Karachi
No.1 Amil baba in Pakistan amil baba in Lahore amil baba in KarachiAmil Baba Mangal Maseeh
 
Understanding Jainism Beliefs and Information.pptx
Understanding Jainism Beliefs and Information.pptxUnderstanding Jainism Beliefs and Information.pptx
Understanding Jainism Beliefs and Information.pptxjainismworldseo
 
The Chronological Life of Christ part 097 (Reality Check Luke 13 1-9).pptx
The Chronological Life of Christ part 097 (Reality Check Luke 13 1-9).pptxThe Chronological Life of Christ part 097 (Reality Check Luke 13 1-9).pptx
The Chronological Life of Christ part 097 (Reality Check Luke 13 1-9).pptxNetwork Bible Fellowship
 
Amil baba kala jadu expert asli ilm ka malik
Amil baba kala jadu expert asli ilm ka malikAmil baba kala jadu expert asli ilm ka malik
Amil baba kala jadu expert asli ilm ka malikamil baba kala jadu
 
Monthly Khazina-e-Ruhaniyaat April’2024 (Vol.14, Issue 12)
Monthly Khazina-e-Ruhaniyaat April’2024 (Vol.14, Issue 12)Monthly Khazina-e-Ruhaniyaat April’2024 (Vol.14, Issue 12)
Monthly Khazina-e-Ruhaniyaat April’2024 (Vol.14, Issue 12)Darul Amal Chishtia
 
Dubai Call Girls Skinny Mandy O525547819 Call Girls Dubai
Dubai Call Girls Skinny Mandy O525547819 Call Girls DubaiDubai Call Girls Skinny Mandy O525547819 Call Girls Dubai
Dubai Call Girls Skinny Mandy O525547819 Call Girls Dubaikojalkojal131
 

Recently uploaded (20)

A Costly Interruption: The Sermon On the Mount, pt. 2 - Blessed
A Costly Interruption: The Sermon On the Mount, pt. 2 - BlessedA Costly Interruption: The Sermon On the Mount, pt. 2 - Blessed
A Costly Interruption: The Sermon On the Mount, pt. 2 - Blessed
 
No.1 Amil baba in Pakistan amil baba in Lahore amil baba in Karachi
No.1 Amil baba in Pakistan amil baba in Lahore amil baba in KarachiNo.1 Amil baba in Pakistan amil baba in Lahore amil baba in Karachi
No.1 Amil baba in Pakistan amil baba in Lahore amil baba in Karachi
 
Unity is Strength 2024 Peace Haggadah + Song List.pdf
Unity is Strength 2024 Peace Haggadah + Song List.pdfUnity is Strength 2024 Peace Haggadah + Song List.pdf
Unity is Strength 2024 Peace Haggadah + Song List.pdf
 
原版1:1复刻莫纳什大学毕业证Monash毕业证留信学历认证
原版1:1复刻莫纳什大学毕业证Monash毕业证留信学历认证原版1:1复刻莫纳什大学毕业证Monash毕业证留信学历认证
原版1:1复刻莫纳什大学毕业证Monash毕业证留信学历认证
 
Seerah un nabi Muhammad Quiz Part-1.pdf
Seerah un nabi  Muhammad Quiz Part-1.pdfSeerah un nabi  Muhammad Quiz Part-1.pdf
Seerah un nabi Muhammad Quiz Part-1.pdf
 
🔝9953056974 🔝young Delhi Escort service Vinay Nagar
🔝9953056974 🔝young Delhi Escort service Vinay Nagar🔝9953056974 🔝young Delhi Escort service Vinay Nagar
🔝9953056974 🔝young Delhi Escort service Vinay Nagar
 
Culture Clash_Bioethical Concerns_Slideshare Version.pptx
Culture Clash_Bioethical Concerns_Slideshare Version.pptxCulture Clash_Bioethical Concerns_Slideshare Version.pptx
Culture Clash_Bioethical Concerns_Slideshare Version.pptx
 
Deerfoot Church of Christ Bulletin 4 21 24
Deerfoot Church of Christ Bulletin 4 21 24Deerfoot Church of Christ Bulletin 4 21 24
Deerfoot Church of Christ Bulletin 4 21 24
 
No.1 Amil baba in Pakistan amil baba in Lahore amil baba in Karachi
No.1 Amil baba in Pakistan amil baba in Lahore amil baba in KarachiNo.1 Amil baba in Pakistan amil baba in Lahore amil baba in Karachi
No.1 Amil baba in Pakistan amil baba in Lahore amil baba in Karachi
 
No 1 astrologer amil baba in Canada Usa astrologer in Canada
No 1 astrologer amil baba in Canada Usa astrologer in CanadaNo 1 astrologer amil baba in Canada Usa astrologer in Canada
No 1 astrologer amil baba in Canada Usa astrologer in Canada
 
St. Louise de Marillac: Animator of the Confraternities of Charity
St. Louise de Marillac: Animator of the Confraternities of CharitySt. Louise de Marillac: Animator of the Confraternities of Charity
St. Louise de Marillac: Animator of the Confraternities of Charity
 
Unity is Strength 2024 Peace Haggadah_For Digital Viewing.pdf
Unity is Strength 2024 Peace Haggadah_For Digital Viewing.pdfUnity is Strength 2024 Peace Haggadah_For Digital Viewing.pdf
Unity is Strength 2024 Peace Haggadah_For Digital Viewing.pdf
 
Asli amil baba in Karachi Pakistan and best astrologer Black magic specialist
Asli amil baba in Karachi Pakistan and best astrologer Black magic specialistAsli amil baba in Karachi Pakistan and best astrologer Black magic specialist
Asli amil baba in Karachi Pakistan and best astrologer Black magic specialist
 
Sawwaf Calendar, 2024
Sawwaf Calendar, 2024Sawwaf Calendar, 2024
Sawwaf Calendar, 2024
 
No.1 Amil baba in Pakistan amil baba in Lahore amil baba in Karachi
No.1 Amil baba in Pakistan amil baba in Lahore amil baba in KarachiNo.1 Amil baba in Pakistan amil baba in Lahore amil baba in Karachi
No.1 Amil baba in Pakistan amil baba in Lahore amil baba in Karachi
 
Understanding Jainism Beliefs and Information.pptx
Understanding Jainism Beliefs and Information.pptxUnderstanding Jainism Beliefs and Information.pptx
Understanding Jainism Beliefs and Information.pptx
 
The Chronological Life of Christ part 097 (Reality Check Luke 13 1-9).pptx
The Chronological Life of Christ part 097 (Reality Check Luke 13 1-9).pptxThe Chronological Life of Christ part 097 (Reality Check Luke 13 1-9).pptx
The Chronological Life of Christ part 097 (Reality Check Luke 13 1-9).pptx
 
Amil baba kala jadu expert asli ilm ka malik
Amil baba kala jadu expert asli ilm ka malikAmil baba kala jadu expert asli ilm ka malik
Amil baba kala jadu expert asli ilm ka malik
 
Monthly Khazina-e-Ruhaniyaat April’2024 (Vol.14, Issue 12)
Monthly Khazina-e-Ruhaniyaat April’2024 (Vol.14, Issue 12)Monthly Khazina-e-Ruhaniyaat April’2024 (Vol.14, Issue 12)
Monthly Khazina-e-Ruhaniyaat April’2024 (Vol.14, Issue 12)
 
Dubai Call Girls Skinny Mandy O525547819 Call Girls Dubai
Dubai Call Girls Skinny Mandy O525547819 Call Girls DubaiDubai Call Girls Skinny Mandy O525547819 Call Girls Dubai
Dubai Call Girls Skinny Mandy O525547819 Call Girls Dubai
 

LUMIA APP LABS #18: INTRODUCING NOKIA IMAGING SDK 1.0

  • 1. LUMIA APP LABS #18 INTRODUCING THE NOKIA IMAGING SDK 1.0 Berthier Lemieux Technology Wizard @ Nokia
  • 2. What is Nokia Imaging SDK Native Windows Phone 8 Library, Accessible from C#, VB and C++ Windows Phone 8 Projects • Includes more then 50 ready to use image processing filters and effects, with various adjustment parameters • Library doesn’t require special knowledge of image processing algorithms or techniques • Partial JPEG decoding - using RAJPEG technology, access image data without decoding a whole JPEG image for a fast previews, application of effects, rotation, and cropping of high resolution images. •
  • 3. Cool apps using the SDK 6tag One Shot Gigapixel image browser (wiki article) Image filters Real-time camera filters Zooming in a 400MP image
  • 4. List of Filters and Effects I
  • 5. List of Filters and Effects II
  • 6. List of Filters and Effects III
  • 8. What’s new in the 1.0 version • • • • Major change of library architecture Parameters of the filters can be changed without rebuilding rendering pipeline Supports creation of the totally custom filters New functionality : ChromaKey and Gradients
  • 10. Blend modes 1st image Blend mode: Color Burn Blend mode: Color 2nd image Blend mode: Add
  • 11. TOOLS TO CREATE GRADIENTS • • Built-in functionality of the SDK v1.0 Low memory footprint Radial Gradient Linear Gradient
  • 12. General Architecture Overview • Library contains three architectural building blocks: • • • • • Image sources (such as bitmaps, streams, files) Effect (e.g. 50+ filters, including inbuilt and custom) Renderers (outputs bitmaps or files) Combining these building blocks, developer creates rendering pipeline Once pipeline is created, it is possible to change filter parameters, or their sequence. Image Source Filter Effects MagicPen Filter Flip Filter Rotation Filter Renderer
  • 13. Modifying filters parameters Parameters can be changed without rebuilding the whole effect pipeline. New to the 1.0 version! • • But keep in mind that: • Rendering is asynchronous, parameters can’t be changed while rendering. • Be specially careful with UI controls (like sliders), they can fire at any time. Useful trick: use a queue of Actions.
  • 14. UI (Slider) Imaging SDK ValueChanged event Rendering a new preview ValueChanged event ValueChanged event Rendering a new preview
  • 15. Modifying filters parameters Defining the queue: Queue<System.Action> _toDo = new Queue<System.Action>(); When resource is busy, enqueue: _toDo.Enqueue( () => { _warpFilter.Level = newValue; } ); The “magic” is here, the lambda expression is queued When resource is free, Apply all the actions in the queue : while (_toDo.Count > 0) { Action action = _toDo.Dequeue(); action(); } await _renderer.RenderAsync(); Executing the lambda expression
  • 16. Image Source Implementations Source type Class of source ImageSource Name Stream System.IO.Stream StreamImageSource Imaging SDK Bitmap Nokia.Graphics.Imaging.Bitmap BitmapImageSource Windows Buffer Windows.Storage.Streams.IBuffer BufferImageSource Camera Windows.Phone.Media.Capture. ICameraCaptureDevice CameraPreviewImageSource Flat Color Windows.Ui.Color ColorImageSource File Windows.Storage.IStorageFile StorageFileImageSource Image Source Filter Effects Cartoon Filter Fog Filter Contrast Filter Renderer
  • 17. Renderers Image Source Destination type Class of destination ImageSource Name Imaging SDK Bitmap Nokia.Graphics.Imaging.Bitmap BitmapRenderer Writeable Bitmaps ( for XAML Image ) WriteableBitmap WriteableBitmapRenderer JPEG Windows.Storage.Streams.IBuffer Filter Effects JpegRenderer Cartoon Filter Fog Filter Contrast Filter Renderer
  • 18. Implementing Custom Effect • • • • Example implements new class, based on CustomEffectBase Developer should override OnProcess method, which gives direct access to individual pixels PixelRegion is used as helper class to iterate through pixels of source and target In this case, CustomRGBFilter doubles each RGB component value
  • 19. LUMIA APP LABS #18 THANK YOU! QUESTIONS? More information: Nokia Lumia Developer's Library http://developer.nokia.com/Resources/Library/Lumia/
  • 20. A global app development competition for Nokia Lumia and Windows Phone 8. It’s your chance to win prizes that will get you noticed, including trips to MWC, DVLUP XPs, devices, promotions and much more. Image & Photo Master Mission & 10 other missions still open. ENTER NOW > Nokia.ly/create
  • 21. WIKI COMPETITION Nokia Imaging and Big UI Wiki Competition 2013Q4 Write great original articles about using Nokia Imaging SDK 1.0 with both C++ and C# APIs. Win a Lumia 1520 device for your articles or a Lumia 925 for your feedback ENTER NOW > http://nokia.ly/wikicomp2013Q4
  • 23. Adding Nokia Imaging SDK to the Project • Simplest way to add Nokia Imaging SDK to your project is through NuGet
  • 24. Adding Nokia Imaging SDK to the Project • Searching NuGet for available Nokia packages and selecting SDK
  • 25. Adding Nokia Imaging SDK to the Project • Using Configuration Manager for editing available platforms in solution
  • 26. Adding Nokia Imaging SDK to the Project • Selecting and removing Any CPU platform
  • 27. General Overview of Required Steps • • • • • • • • • • Step 1: Include Nokia Imaging SDK Libraries into your project Step 2: Prepare source image: uncompressed image as WriteableBitmap, AudioVideoCaptureDevice or compressed image as IBuffer, StorageFile Step 3: Create image source as instance of IImageSource Step 4: Create enumeration (such as IList) of filters instances IFilter in required sequence Step 5: Create FilterEffect with associated IImageSource instance Step 6: Attach enumeration of IFilter the FilterEffect Step 7: Create renderer with associated FilterEffect and target output Step 8: Use asynchronous methods RenderAsync in order to generate output Remember: official documentation is part of the Lumia Developer Library http://developer.nokia.com/Resources/Library/Lumia/#!nokia-imaging-sdk.html