Source: https://msestudiantestech.wordpress.com/2013/01/08/genapp21/
Timestamp: 2018-06-18 11:54:26+00:00

Document:
Generation App – Día 21 – Acceder a la secuencia de imágenes de la cámara | MSEstudiantes Tech
← Generation App – Día 20 – Agregando Notificaciones Push a tu aplicación
Generation App – Día 22 – Implementar agentes de segundo plano en tu aplicación →
de msestudiantestech | enero 8, 2013 · 3:57 pm
Generation App – Día 21 – Acceder a la secuencia de imágenes de la cámara
Tu puedes crear una aplicación de cámara usando el API de la cámara para captura fotografías. En la lección del día de hoy te mostrare como desplegar el viewfinder de la cámara, disparar la cámara programáticamente, y salvar una fotografía tomada a la librería multimedia y en el almacenamiento aislado. Una vez que comprendas como crear una aplicación relacionada con la cámara, fácilmente estarás encaminado a implementar el flash y enfoque, cambiando la resolución de captura, y usando el botón físico de capturar imágenes.
Creando la interfaz de usuario de la cámara
En esta sección, crearemos una interfaz de usuario para la cámara que consiste en la región Viewfinder para desplegar las imágenes capturadas, y un botón disparador para capturar una imagen.
En Visual Studio 2010 Express para Windows Phone, crea un nuevo proyecto dando clic en Archivo –> Nuevo Proyecto
En la ventana de nuevo proyecto. Expande las plantillas de Visual C#, y selecciona la plantilla Silverlight For Windows Phone
Selecciona la plantilla Windows Phone Application. Coloca el nombre que desees para tu proyecto.
Dale clic a OK. La pantalla de una Nueva aplicación para Windows Phone es desplegada
Al momento de escoger la versión del S.O., asegúrate escoger la versión Windows Phone 7.1
Da clic en OK. El nuevo proyecto es creado, y el archivo MainPage.xaml es abierto en el diseñado de Visual Studio
Del menú de Proyecto, selecciona Add Reference. En la pestana de .NET, escogeMicrosoft.XNA.Framework y luego da clic a OK.
En MainPage.xaml, actualiza el elemento phone:PhoneApplicationPage con el siguiente código:
Esto configura la pagina para soportar la orientación horizontal y esconder la bandeja del sistema.
Ahora en MainPage.xaml, reemplaza el Grid nombrado LayoutRootcon el siguiente código:
<Button x:Name="ShutterButton" Content="SH"
Click="ShutterButton_Click" FontSize="26"
FontWeight="ExtraBold" Height="75" />
<TextBlock Height="40" HorizontalAlignment="Left" Margin="8,428,0,0"
Name="txtDebug" VerticalAlignment="Top" Width="626" FontSize="24"
Este código crea una región Viewfinder de 640 x 480 pixeles con un control StackPanel que contiene un botón disparador. Ahora Implementaremos el evento ShutterButtonClick en los siguientes pasos.
Dirígete al código C# MainPage.xaml.cs y agrega las siguientes directivas en la parte superior de la pagina:
Ahora en la clase MainPage, declara los siguientes atributos arriba del constructor:
Para crear la aplicación de cámara, la capacidad de la cámara tiene que ser declarado en el archivo de manifesto del aplicación. Abre el archivoWMAppManifest.xmly confirma el siguiente elemento se encuentra presente:
(Opcional) Si quieres que tu aplicación utilice cámara frontal, adicionalmente se debe agregar la siguiente capacidad en los elementos Capabilities en el archivo de manifesto de la aplicación:
Implementando Viewfinder y eventos de la cámara
Para implementar el viewfinder, deberás establecer la fuente ViewfinderBrush en la cámara del Windows Phone. Además de esto implementaremos varios eventos relacionados de la cámara como la inicialización, captura completada, y disponibilidad de imagen.
Para implementar los eventos de cámara
En MainPage.xaml.cs, agrega el siguiente código a la clase MainPage:
Este código utiliza el evento de la cámara Initialize, y actualiza el TextBlocknombrado txtDebug. El método BeginInvoke es requerido para actualiza el estado porque la interfaz de la aplicación se ejecuta en otro hilo de proceso diferente.
viewfinderBrush.RelativeTransform = new CompositeTransform()
{ CenterX = 0.5, CenterY = 0.5, Rotation = landscapeRightRotation };
{ CenterX = 0.5, CenterY = 0.5, Rotation = 0 };
Este código asegura que el viewfinder, viewFinderBrush esta orientado de la manera correcta en la manera en que el usuario este sosteniendo el Windows Phone. Si la cámara frontal esta siendo utilizada, el brush correspondiente debe ser rotada a la dirección opuesta como si se encontrara en la parte trasera del dispositivo.
{    if (cam != null)    {       try       {          // Start image capture.          cam.CaptureImage();       }       catch (Exception ex)       {          this.Dispatcher.BeginInvoke(delegate()             {             // Cannot capture an image until the previous capture has completed.             txtDebug.Text = ex.Message;             });       }    }
{    // Increments the savedCounter variable used for generating JPEG file names.    savedCounter++;
Este código implementa los eventos del botón disparador y captura completada. El botón disparador es el elemento que agregamos en el código XAML para capturar fotografías con la cámara. El evento de captura completada es utilizado en este proyecto para incrementar la variable contador savedCounter. Es utilizado para la siguiente sección para nombrar las imágenes JPEG guardadas.
Guardando fotografías a la galería multimedia
Para una aplicación de cámara para Windows Phone 7.1, dos imágenes son capturadas cuando una foto es tomada. Una es la imagen con la resolución máxima, y la segunda es una imagen thumbnail usados para mostrar una versión mas reducida para mostrar en la galería de imágenes. Esta sección explica como guardar la imagen con resolución máxima en la librería multimedia del dispositivo. También aprenderá como salvar una imagen con resolución máxima y la imagen thumbnail en el almacenamiento aislado.
Para guardar la imagen en la librería multimedia y almacenamiento aislado
Este código implementa los eventos CaptureImageAvailable yCaptureThumbnailAvailable. El primer método guarda la imagen con resolución máxima en la librería multimedia y en almacenamiento aislado. El segundo método te muestra como se guarda una imagen thumbnail en almacenamiento aislado.
En el dispositivo, ejecuta la aplicación seleccionando el comando de menúDebug|Start Debugging. Presiona el botón SH. El textblock txtDebug te indicara el estado de las operaciones para guardar las imágenes en almacenamiento aislado. Después de cerrar la aplicación, puedes encontrar las fotos que tomaste con tu aplicación la carpeta camera roll en el hub de fotos. En la siguiente imagen te ilustra como debería aparecer la interfaz grafica en este punto.
En este ejemplo. el botón disparador SH, es mostrado en la esquina superior derecha de la interfaz. Una imagen de mangos es mostrado en el control Canvas nombrado viewFinderCanvas.
Cabe mencionar que estos ejemplos es solo una introducción a lo que se puede implementar usando la cámara. Existen mas funcionalidades útiles que involucran la cámara como usar el Flash, el enfoque, la resolución de la imagen capturada, etc.
Publicación original –> http://j.mp/WtR40h
Fuente 1 –> http://j.mp/UGcGMN
Una respuesta a “Generation App – Día 21 – Acceder a la secuencia de imágenes de la cámara”

References: resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución