Lens App and Imaging SDK for Windows Phone

Post on 20-Feb-2017

425 views 1 download

Transcript of Lens App and Imaging SDK for Windows Phone

WP801– Windows Phone 8 lens app: come sviluppare un'applicazione fotografica grazie all'Imaging SDK di Nokia

#CDays13 – 24, 25 e 26 settembre 2013, Roma

Matteo Pagani

Microsoft MVP | Nokia Developer ChampionSoftware Engineer @ Funambol

Mail: info@qmatteoq.comTwitter: @qmatteoqBlog: www.qmatteoq.com [IT] / wp.qmatteoq.com [EN]

Agenda• Sviluppare un’applicazione

fotografica• Imaging SDK di Nokia• Integrare un’applicazione fotografica

con il sistema operativo

L’approccio più semplice• E’ disponibile il chooser

CameraCaptureTask• E’ adatto per scenari base: si deve

scattare una foto e importarla nell’applicazione

• Esempio: client per social network

Nuove API in Windows Phone 8

• Approccio asincrono• Possibilità di controllare ogni singolo

parametro della fotocamera• Possibilità di scattare foto o

registrare video

Come funzionano?• Si mostra il flusso in real time

utilizzando un VideoBrush (ViewFinder)

• Si gestisce correttamente l’orientamento

• Si acquisisce una sequenza di frame (attualmente, è supportata la gestione di un solo frame)

Gestire le impostazioni• Metodi SetProperty() e GetProperty()– KnownCameraGeneralProperties per le

proprietà comuni– KnownCameraPhotoProperties per le

impostazioni della fotocamera– KnownCameraAudioVideoProperties per

le impostazioni della registrazione video

Lumia 1020• Le API restituiscono, come risoluzione

massima, i 5 MP• E’ possibile forzare la risoluzione a 41

MP• Occhio alla gestione delle foto ad

altissima risoluzione: non salvarle in Camera Roll!

Lumia 1020• Microsoft.Phone.Info.DeviceStatus.De

viceName• Identificato come RM-875, RM-876 o

RM-877• Risoluzione da forzare: 7712 x 4352

DEMOCamera API

Imaging SDK• Libreria nativa di Nokia per Windows

Phone 8 (qualsiasi device, non solo Lumia)

• http://s.qmatteoq.com/ImagingSDK• Permette di applicare filtri alle

immagini acquisiti o in real time• Funzionalità di crop, resize, undo

Imaging SDK• Essendo una libreria nativa, non può

essere compilata in modalità «Any CPU».

• Occorre specificare l’architettura:– ARM per deploy sul device e sullo Store– X86 per deploy sull’emulatore

DEMOImaging SDK

Integrazione• Le applicazioni fotografiche possono

essere integrate con il sistema operativo• L’utente può interagire con l’applicazione

direttamente dall’hub Photos• Viene attivata con una dichiarazione nel

file di manifest• L’app viene aperta con un Uri speciale

Apps• L’applicazione viene aggiunta nella

sezione Apps dell’hub Photos• Al tap, l’applicazione viene aperta

regolarmente• E’ semplicemente una scorciatoia

Manifest

<Extension ExtensionName="Photos_Extra_Hub" ConsumerID="{5B04B775-356B-4AA0-AAF8-6491FFEA5632}" TaskID="_default" />

Share Picker• L’utente può importare una foto della

libreria direttamente nell’applicazione

• L’applicazione riceve un GUID che rappresenta la foto scelta

• La classe MediaLibrary permette di recuperare l’immagine tramite GUID

Manifest & Uri<Extension ExtensionName="Photos_Extra_Share" ConsumerID="{5B04B775-356B-4AA0-AAF8-6491FFEA5632}" TaskID="_default" />

/MainPage.xaml?Action=ShareContent&FileId=%7BA3D54E2D-7977-4E2B-B92D-3EB126E5D168%7D

Rich Media App• «Firma» che viene applicata alle foto

scattate e salvate in Camera Roll con un’applicazione di terze parti

• Viene visualizzata nell’hub Photos e come opzione nell’app bar

Manifest & Uri<Extension ExtensionName="Photos_Rich_Media_Edit" ConsumerID="{5B04B775-356B-4AA0-AAF8-6491FFEA5632}" TaskID="_default" />

/MainPage.xaml?Action=RichMediaEdit&token=%7Bed8b7de8-6cf9-454e-afe4-abb60ef75160%7D

Edit• Pensata per le applicazioni che

supportano la modifica delle foto• Funzionamento analogo allo Share

Picker

Manifest & Uri<Extension ExtensionName="Photos_Extra_Image_Editor" ConsumerID="{5B04B775-356B-4AA0-AAF8-6491FFEA5632}" TaskID="_default" />

/MainPage.xaml?Action=EditPhotoContent&FileId=%7Bea74a960-3829-4007-8859-cd065654fb

Lens App• L’applicazione può essere lanciata

dall’app nativa della fotocamera• In questo modo, l’utente può

continuare a sfruttare il tasto hardware dedicato

Manifest & Uri<Extension ExtensionName="Camera_Capture_App" ConsumerID="{5B04B775-356B-4AA0-AAF8-6491FFEA5631}" TaskID="_default" />

/MainPage.xaml?Action=ViewfinderLaunch

DEMOIntegrazione

Q&ATutto il materiale di questa sessione suhttp://www.communitydays.it/

#CDays13