Capturar imágenes desde la Cámara en Windows Phone 7

En este post, crearemos una aplicación de prueba de Windows Phone 7 para capturar imágenes con la cámara del dispositivo y obtener la imagen en nuestra aplicación.

Para iniciar, en Visual Studio 2010 crearemos un nuevo proyecto.

camwp7_1

Luego, seleccionamos un proyecto de tipo Windows Phone Application.

camwp7_2

Una vez en el formulario de nuestra aplicación de prueba, arrastraremos un objetos tipo Image.

camwp7_3

Posteriormente, adicionamos un objeto tipo Button.

camwp7_4

Luego, en el código fuente del formulario, realizamos los siguientes pasos: en un principio, declarar una variable de tipo CaptureCameraTask,

private readonly CameraCaptureTask camera;

También adicionamos una sentencia Using:

using Microsoft.Phone.Tasks;

Después de esto, en el constructor de la aplicación, debemos inicializar la instancia de la clase CameraCaptureTask, y matricular el método que manejará el evento Completed del CameraCaptureTask, el cual se activará después de capturar la imagen con la cámara del dispositivo.

        // Constructor
        public MainPage()
        {
            InitializeComponent();

            camera = new CameraCaptureTask();
            camera.Completed += new EventHandler<PhotoResult>(camera_Completed);
        }

La declaración y la inicialización del objeto CameraCaptureTask se debe realizar como variable de campo y en el constructor del formulario respectivamente, esto debido a que es necesario para que la imagen se pueda recuperar cuando la aplicación se recupere posteriormente a la finalización de la captura de la imagen con la cámara.

Bien, y ahora vamos a hacer doble click en el botón que agregamos en el formulario para generar el método que se activará en el evento click, y una vez generado, agregamos el código para activar la cámara del dispositivo.

private void btnRegistrarNovedad_Click(object sender, RoutedEventArgs e)
{
   camera.Show();
}

Por último, generaremos el código del método que se ejecutará para manejar el evento Completed, el cual ya indicamos anteriormente en el constructor.

        void camera_Completed(object sender, PhotoResult e)
        {
 	        if (e.TaskResult == TaskResult.OK)
            {
                BitmapImage imagen = new BitmapImage();
                imagen.SetSource(e.ChosenPhoto);

                image1.Source = imagen;
            }
        }

Después de esto, podremos ejecutar nuestra aplicación de prueba en el emulador de Windows Phone 7, el cual nos lleva a la pantalla principal.

camwp7_9

Al seleccionar la opción de Capturar Imagen, seremos llevados al emulador de la cámara del dispositivo, donde podremos emular la captura de una imagen.

camwp7_10

Y una vez confirmada la imagen que se toma, retornamos a la pantalla de nuestra aplicación, recuperando la imagen y viéndola en el formulario de la pantalla.

camwp7_11

Nota: En el emulador de Windows Phone 7, las capturas de imágenes en la cámara se emulan con las imágenes en fondo blanco con los cuadrados, como los que se ven en las imagenes anteriores.

¡Espero que este post les pueda ser útil!

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: