Xamarin.iOS
Conectando con Microsoft Cognitive Services
Buscar..
Observaciones
En este ejemplo se utilizó el paquete Microsoft.ProjectOxford.Vision NuGet: https://www.nuget.org/packages/Microsoft.ProjectOxford.Vision/
Para leer más acerca de los servicios de Microsoft cognitivas por favor refiérase a la documentación oficial: https://www.microsoft.com/cognitive-services/en-us/computer-vision-api
Encuentre muestra cargado en mi GitHub: https://github.com/Daniel-Krzyczkowski/XamarinIOS/tree/master/XamariniOS_CognitiveServices
También hay que adjuntar un enlace a mi blog donde presenté cómo utilizar los servicios cognitivos con Xamarin Forms: http://mobileprogrammer.pl
Conectando con Microsoft Cognitive Services
En este ejemplo, aprenderá a usar los Servicios cognitivos de Microsoft con la aplicación móvil Xamarin iOS. Usaremos Computer Vision API para detectar lo que hay en la imagen.
Una vez que cree el proyecto Xamarin.iOS, a continuación agregue el paquete NuGet al proyecto:
https://www.nuget.org/packages/Microsoft.ProjectOxford.Vision/
Con esta biblioteca podremos utilizar los Servicios cognitivos en nuestra aplicación iOS. Supongo que ya tiene una cuenta de Microsoft registrada para usarla y ha habilitado Computer Vision Api como en la siguiente pantalla:
Una vez que haga clic en "Suscribirse" en la parte inferior, se generará la clave Api:
Ahora podemos comenzar a configurar el acceso a los Servicios cognitivos desde la aplicación iOS. En primer lugar, necesitamos obtener una imagen para el análisis. Para hacerlo, podemos usar Xamarin Media Component disponible a continuación: https://components.xamarin.com/view/mediaplugin
Una vez que se instale correctamente, vamos a crear una interfaz de usuario simple con la imagen y el botón para seleccionar la imagen de la galería. El tamaño de los controles depende de usted.
Abra Main.storyboard y agregue los controles UIImageView y UIButton que hacen el ViewController predeterminado. Agregue los nombres: "SelectedPictureImageView" y "SelectButton":
Ahora debemos agregar el controlador de eventos "Touch Up Inside" para manejar la selección de imágenes:
partial void SelectButtonClick(UIButton sender)
{
selectImage();
}
async void selectImage()
{
var selectedImage = await CrossMedia.Current.PickPhotoAsync();
SelectedPictureImageView.Image = new UIImage(NSData.FromStream(selectedImage.GetStream()));
}
Ahora nos gustaría mostrar información de análisis una vez que Cognitive Services devuelva la información. Añadir etiqueta debajo del botón llamado "AnalysisLabel":
¡Es hora de conectar Computer Vision API!
Para obtener información sobre la imagen seleccionada, agregue el siguiente método. Recuerda pegar tu clave API!
async Task analyseImage(Stream imageStream)
{
try
{
VisionServiceClient visionClient = new VisionServiceClient("<<YOUR API KEY HERE>>");
VisualFeature[] features = { VisualFeature.Tags, VisualFeature.Categories, VisualFeature.Description };
var analysisResult = await visionClient.AnalyzeImageAsync(imageStream, features.ToList(), null);
AnalysisLabel.Text = string.Empty;
analysisResult.Description.Tags.ToList().ForEach(tag => AnalysisLabel.Text = AnalysisLabel.Text + tag + "\n");
}
catch (Microsoft.ProjectOxford.Vision.ClientException ex)
{
AnalysisLabel.Text = ex.Error.Message;
}
}
Ahora puedes invocarlo en el método "selectImage":
async void selectImage()
{
var selectedImage = await CrossMedia.Current.PickPhotoAsync();
SelectedPictureImageView.Image = new UIImage(NSData.FromStream(selectedImage.GetStream()));
await analyseImage(selectedImage.GetStream());
}
Una vez que seleccione la imagen, Microsoft Cognitive Services la analizará y devolverá el resultado:
Recuerde que su imagen no puede ser demasiado grande, en este caso recibirá información como la siguiente:
Hay muchos otros servicios que puedes intentar usar. Por favor, consulte la documentación oficial (enlace adjunto) para descubrir más.