Download - 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: [email protected]: @qmatteoqBlog: www.qmatteoq.com [IT] / wp.qmatteoq.com [EN]
Grazie aSponsor
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