miércoles, 3 de mayo de 2017

Reto 6 del Xamarin Championship

¡Hola! Si estuviste como yo haciendo F5 en el GitHub del Xamarin Championship te habrás dado cuenta que ayer se publicó el Reto 6, en el cual aprendes a incorporar los Microsoft Cognitive Services en una aplicación de Android con Xamarin (espero haber sido de los 5 primeros xD).

Bien, en la guía aprendes a tomar una foto de tu dispositivo mediante la cámara y enviarla al servicio para que devuelva información del estado de ánimo del rostro detectado.



Sin embargo, si estás usando el emulador, verás que es imposible tomar una foto, pues solo aparece la imagen en movimiento.



Una forma de resolver esta situación es diciéndole que seleccione una foto de la galería del emulador, lo cual es muy sencillo. Solo sigue estos pasos.

Paso 1. Inicia el emulador (no requieres Visual Studio para esto, puedes hacerlo desde el menú de Inicio).


Paso 2. Abre el Navegador web..


Paso 3. Busca una imagen con rostro.



Paso 4. Guarda la imagen. Para ello, da clic sostenido sobre la imagen y así aparecerá el menú contextual y puedas guardarla en el dispositivo (no le vayas a hacer como cierta persona que le daba botón derecho y no le salía el menú 😄 si lo lees, es broma jaja) dando clic en Save image.



Paso 5. Resuelve el Reto 6 pero en el archivo CognitiveActivity modifica la línea file = await ServiceImage.TakePicture(true); que está en el manejador de evento Click de BtnCamara, cambiando el valor a false.


Paso 6. ¡Listo! Ejecuta la app y verás que al presionar el botón se ejecutará el selector de imagen en vez de lanzar la cámara, Selecciona tu imagen y analízala, para verificar las emociones detectadas por el servicio.

Click en Siguiente

Click en Tomar una foto

Selecciona la foto de la galería

Click en Analizar foto

Espera...

Observa el resultado


¿Cuál es el truco? La explicación es sencilla. En la clase ServiceImage, el método TakePicture toma un booleano como parámetro. Si está establecido en true, la imagen a analizar será obtenida desde la cámara; en caso contrario (false), la imagen será obtenida desde la galería.



Espero esta entrada haya sido de utilidad para tí, en caso afirmativo no dudes en compartirla con tus amigos :) También puedes dejarme un comentario para hacerme saber qué te pareció esta publicación o si te interesa que cubra algún tema en el futuro.

¡Saludos y hasta la próxima!

1 comentario:

  1. Justo no puede hacer la prueba con el emulador porque no sabía como guardar una imagen jaja

    ResponderEliminar