Xamarin.iOS
Connexion avec Microsoft Cognitive Services
Recherche…
Remarques
Dans cet exemple, nous avons utilisé le package Microsoft.ProjectOxford.Vision NuGet: https://www.nuget.org/packages/Microsoft.ProjectOxford.Vision/
Pour en savoir plus sur les services cognitifs Microsoft, reportez-vous à la documentation officielle: https://www.microsoft.com/cognitive-services/en-us/computer-vision-api
S'il vous plaît trouver un exemple téléchargé sur mon GitHub: https://github.com/Daniel-Krzyczkowski/XamarinIOS/tree/master/XamariniOS_CognitiveServices
Je joins également un lien vers mon blog où j'ai présenté comment utiliser les services cognitifs avec l'application Xamarin Forms: http://mobileprogrammer.pl
Connexion avec Microsoft Cognitive Services
Dans cet exemple, vous allez apprendre à utiliser Microsoft Cognitive Services avec l'application mobile Xamarin iOS. Nous allons utiliser l'API Computer Vision pour détecter ce qui est dans l'image.
Une fois que vous avez créé le projet Xamarin.iOS, veuillez ajouter le package NuGet ci-dessous au projet:
https://www.nuget.org/packages/Microsoft.ProjectOxford.Vision/
Avec cette bibliothèque, nous pourrons utiliser les services cognitifs dans notre application iOS. Je suppose que vous avez déjà un compte Microsoft enregistré pour l'utiliser et que vous avez activé Computer Vision Api comme sur l'écran ci-dessous:
Une fois que vous aurez cliqué sur "S'abonner", la clé Api en bas sera générée:
Maintenant, nous pouvons commencer à configurer l'accès à Cognitive Services à partir de l'application iOS. Premièrement, nous devons avoir une image pour l'analyse. Pour ce faire, nous pouvons utiliser le composant média Xamarin disponible ci-dessous: https://components.xamarin.com/view/mediaplugin
Une fois l'installation réussie, créons une interface utilisateur simple avec l'image et le bouton pour sélectionner une image dans la galerie. La taille des commandes dépend de vous.
Ouvrez Main.storyboard et ajoutez les contrôles UIImageView et UIButton par défaut ViewController. Ajoutez-leur les noms: "SelectedPictureImageView" et "SelectButton":
Maintenant, nous devons ajouter le gestionnaire d'événement "Touch Up Inside" pour gérer la sélection d'images:
partial void SelectButtonClick(UIButton sender)
{
selectImage();
}
async void selectImage()
{
var selectedImage = await CrossMedia.Current.PickPhotoAsync();
SelectedPictureImageView.Image = new UIImage(NSData.FromStream(selectedImage.GetStream()));
}
Nous souhaitons maintenant afficher les informations d'analyse une fois que Cognitive Services aura renvoyé les informations. Ajouter une étiquette sous le bouton "AnalysisLabel":
Il est temps de connecter l'API Computer Vision!
Pour obtenir des informations sur l'image sélectionnée, ajoutez la méthode ci-dessous. N'oubliez pas de coller votre clé 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;
}
}
Maintenant, vous pouvez l'invoquer dans la méthode "selectImage":
async void selectImage()
{
var selectedImage = await CrossMedia.Current.PickPhotoAsync();
SelectedPictureImageView.Image = new UIImage(NSData.FromStream(selectedImage.GetStream()));
await analyseImage(selectedImage.GetStream());
}
Une fois l’image sélectionnée, Microsoft Cognitive Services l’analysera et renverra le résultat:
Rappelez-vous que votre image ne peut pas être trop grande - dans ce cas, vous recevrez des informations comme ci-dessous:
Il existe de nombreux autres services que vous pouvez essayer d'utiliser. Veuillez vous référer à la documentation officielle (lien ci-joint) pour en savoir plus.