Compact Framework la gestione delle foto e video

Articolo che fornisce le basi per utilizzare la fotocamera del dispositivo mobile per effettuare le foto e riprese.

il
Sviluppatore Microsoft .Net, Collaboratore di IProgrammatori

Introduzione

Dalla versione di Windows mobile 5, posiamo utilizzare tramite le classi opportune, la fotocamera del dispositivo mobile per effettuare delle foto o delle riprese.
In questo articolo, vedremo alcuen tecniche di come utilizzare la camera del dispositivo mobile.
Si crea un nuovo progetto di tipo device, tramite il compact framework 3.5, inseriamo nel progetto due pulsanti, il primo permette di eseguire il codice per effettuare le foto, il secondo per effettuare delle riprese.

Stesura del codice.

Prima di passare in visualizzazione codice, inseriameno nel nostro progetto, un riferimento alla dll Microsoft.Windows.Form, che aggiungiamo tra i riferimenti.

Qui di seguito si riporta il codice per VB.Net e C# di tali dichiaraiozni

VB.Net
Imports Microsoft.WindowsForm.Forms

C#
Using Microsoft.WindowsForm.Forms


Terminata questa parte, nell'evento click di un pulsante, scriviamo il codice per eseguire la classe CameraCaptureDialog, che permette di gestire la fotocamera del dispositivo.

Questa classe, contiene un metodo chiamato ShoDialog che restituisce un enumerazione di vari risultati, come per esempio  l'annullamento, la conferma ed altro ancora.
Questo metodo permette di avviare la fotocamera.
Qui di seguito si riporta il codice per entrambi i linguaggi del suo utilizzo per effettuare delle foto.

VB.Net
     Dim CameraFoto As New CameraCaptureDialog()
            CameraFoto.Owner = Me
            'imposto il titolo
            CameraFoto.Title = "Mio titolo"
            'imposto la cartella documenti
            CameraFoto.InitialDirectory = "\My Documents"
            'nome file
            CameraFoto.DefaultFileName = "\MiaFoto.jpg"
            'risoluzione
            CameraFoto.Resolution = New Size(100, 100)
            'Avvio la foto
            If CameraFoto.ShowDialog = Windows.Forms.DialogResult.OK Then
                MessageBox.Show(CameraFoto.FileName)
            End If
C#
  CameraCaptureDialog CameraFoto = new CameraCaptureDialog();
                CameraFoto.Owner = this;
                //imposto il titolo
                CameraFoto.Title = "Mio titolo";
                //imposto la cartella documenti
                CameraFoto.InitialDirectory = @"\My Documents";
                //nome file
                CameraFoto.DefaultFileName = @"\MiaFoto.jpg";
                //risoluzione
                CameraFoto.Resolution = new Size(100, 100);
                //Avvio la foto
                if (CameraFoto.ShowDialog() == DialogResult.OK)
                    MessageBox.Show(CameraFoto.FileName);



Come si vede dal codice appena illustrato, si è creato un oggetto di tipo CameraCaptureDialog, la proprietà Owner è stata impostata con il nome della classe madre, mentre le altre proprietà, permettono rispettivamente di impostare il titolo della finestra che viene aperta, il percorso dove salvare l'immagine, il nome, la risoluzione.

La stessa classe, ci permette anche di gestire i video, impostando determinate proprietà.
Qui di seguito, si riporta un frammento di codice per entrambi i linguaggi di programmazione.

VB.Net
           Dim CameraVideo As New CameraCaptureDialog()
            CameraVideo.Owner = Me
            'imposto il path di salvataggio
            CameraVideo.InitialDirectory = "\My Documents"
            'imposto il file video
            CameraVideo.DefaultFileName = "\MioVideo.3gp"
            'imposto il titolo
            CameraVideo.Title = "Mio Titolo"
            'imposto il tipo
            CameraVideo.VideoTypes = CameraCaptureVideoTypes.Messaging
            'imposto la risoluzione
            CameraVideo.Resolution = New Size(176, 144)
            'il tempo di video (30 secondi)
            CameraVideo.VideoTimeLimit = New TimeSpan(0, 0, 30)
            'la modalità
            CameraVideo.Mode = CameraCaptureMode.VideoWithAudio
            If CameraVideo.ShowDialog = Windows.Forms.DialogResult.OK Then
                MessageBox.Show(CameraVideo.FileName)
            End If
C#
  CameraCaptureDialog CameraVideo = new CameraCaptureDialog();
                CameraVideo.Owner = this;
                //imposto il path di salvataggio
                CameraVideo.InitialDirectory = @"\My Documents";
                //imposto il file video
                CameraVideo.DefaultFileName = @"\MioVideo.3gp";
                //imposto il titolo
                CameraVideo.Title = "Mio Titolo";
                //imposto il tipo
                CameraVideo.VideoTypes = CameraCaptureVideoTypes.Messaging;
                //imposto la risoluzione
                CameraVideo.Resolution = new Size(176, 144);
                //il tempo di video (30 secondi)
                CameraVideo.VideoTimeLimit = new TimeSpan(0, 0, 30); 
                //la modalità
                CameraVideo.Mode = CameraCaptureMode.VideoWithAudio;
                if (CameraVideo.ShowDialog() == DialogResult.OK )
                {
                    MessageBox.Show(CameraVideo.FileName);
                }



l'uso di alcune proprietà è uguale al codice visto in precedenza, solo che impostando la proprietà videotype e VideotimeLimit, e mode, verrà utilizzata la funzione ripresa.
Con Mode, viene impostato il tipo di ripresa con audio, mentre la proprietà videotimelimit, limita il tempo di dura, nel nostro caso 30 secondi.

Conclusioni

Si è visto, come la programmazione in Windows Mobile 5  e 6 è notevolemnte semplificata per uso di alcuni componenti di cui è dotato il dispositivo, come la videocamera.