Si riporta l'articolo scritto per il sito http://www.iprogrammatori.it/articoli/programmazione/art_compact-framework-la-gestione-delle-foto_972.aspx
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 dichiarazioni.
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
'video
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
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
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.
Nessun commento:
Posta un commento