Scattare Una Foto Con Il CameraCaptureTask E Visualizzarla Su Windows Phone

Author: ollie10 6/22/2010 12:40 PM

Oggi vediamo come usare il task CameraCaptureTask per catturare una foto e visualizzarla sul display. Il CameraCaptureTask fa parte dell'assembly Microsoft.Phone.Tasks.dll che quindi dovrà essere referenziato. Come già detto in precedenza questo assembly contiene tutte le funzioni per interagire con le funzioni base del telefono senza dovere implementare nuovamente funzionalità già pre-esistenti.

Con l'ultima versione dei tools per Windows Phone è possibile fare dei test su questi task nonostante non si abbia a che fare con una fotocamera "reale" e quello che vedrete è mostrato nello screenshot sottostante:

cameracapturetask screenshot

E dopo aver scattato la foto

cameracapturetask screenshot

La pagina XAML contiene un bottone a cui è collegato un handler che fa partire il task e un oggetto image al quale verrà dato come source il risultato della cattura della foto. Con l'istruzione ChooserListener.ChooserCompleted += OnCompleted; andiamo ad attaccare un evento alla chiusura del task che avrà come parametri un oggetto di tipo TaskEventArgs<PhotoResult>, questo oggetto verrà poi usato per creare l'immagine da visualizzare.

Questa è la pagina xaml

<Grid x:Name="LayoutRoot" Background="{StaticResource PhoneBackgroundBrush}">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>

        <!--TitleGrid is the name of the application and page title-->
        <Grid x:Name="TitleGrid" Grid.Row="0">
            <TextBlock Text="Ollie10.it" x:Name="textBlockPageTitle" Style="{StaticResource PhoneTextPageTitle1Style}"/>
            <TextBlock Text="CameraCaptureTask Test" FontSize="60" x:Name="textBlockListTitle" Style="{StaticResource PhoneTextPageTitle2Style}"/>
        </Grid>

        <!--ContentGrid is empty. Place new content here-->
        <Grid x:Name="ContentGrid" Grid.Row="1">
            <Button Content="Scatta" Height="70" HorizontalAlignment="Center" Name="button1" VerticalAlignment="Center" Width="160" Click="button1_Click" Margin="44,0,596,0" />
            <Image Height="240" HorizontalAlignment="Center" Name="PreviewImage" Stretch="Fill" VerticalAlignment="Center" Width="480" Margin="253,0,0,0" />
        </Grid>
    </Grid>

Questa è il codice c# usato

public partial class MainPage : PhoneApplicationPage
    {
        public MainPage()
        {
            InitializeComponent();
            SupportedOrientations = SupportedPageOrientation.Landscape;
        }

        /// <summary>
        /// METODO ATTACCATO AL BOTTONE SCATTA
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Click(object sender, RoutedEventArgs e)
        {
            // Lancio il task di cattura della foto e attacco l'handler che verrrà richiamato alla fine
            CameraCaptureTask task = new CameraCaptureTask();
            ChooserListener.ChooserCompleted += OnCompleted;
            task.Show();
        }

        /// <summary>
        /// METODO CHE VISUALIZZERA' LA FOTO SCATTATA NELL'IMAGE "PreviewImage"
        /// </summary>
        /// <param name="s"></param>
        /// <param name="e"></param>
        private void OnCompleted(object s, EventArgs e)
        {
            BitmapImage currentImage = new BitmapImage();
            TaskEventArgs<PhotoResult> result = (TaskEventArgs<PhotoResult>)e;
            if (result.TaskResult == TaskResult.OK)
            {
                currentImage.SetSource(result.Result.ChosenPhoto);
                PreviewImage.Source = currentImage;
            }
            ChooserListener.ChooserCompleted -= OnCompleted;
        }
    }

Il download dei sorgenti è disponibile qui: Ollie10.Camera.zip (28,19 kb)

Tags: ,
Categories: Windows Phone
Permalink | Comments (0)
  • condividi Scattare Una Foto Con Il CameraCaptureTask E Visualizzarla Su Windows Phone su facebook
  • condividi Scattare Una Foto Con Il CameraCaptureTask E Visualizzarla Su Windows Phone su twitter
  • condividi Scattare Una Foto Con Il CameraCaptureTask E Visualizzarla Su Windows Phone su stumbleupon
  • condividi Scattare Una Foto Con Il CameraCaptureTask E Visualizzarla Su Windows Phone su digg
  • condividi Scattare Una Foto Con Il CameraCaptureTask E Visualizzarla Su Windows Phone su delicious
  • condividi Scattare Una Foto Con Il CameraCaptureTask E Visualizzarla Su Windows Phone su reddit
  • condividi Scattare Una Foto Con Il CameraCaptureTask E Visualizzarla Su Windows Phone su google
  • condividi Scattare Una Foto Con Il CameraCaptureTask E Visualizzarla Su Windows Phone su netvibes
  • aggiungi il feed di Scattare Una Foto Con Il CameraCaptureTask E Visualizzarla Su Windows Phone

Add comment




  Country flag
biuquote
  • Comment
  • Preview
Loading