Xamarin.iOS
Verbinding maken met Microsoft Cognitive Services
Zoeken…
Opmerkingen
In dit voorbeeld hebben we Microsoft.ProjectOxford.Vision NuGet-pakket gebruikt: https://www.nuget.org/packages/Microsoft.ProjectOxford.Vision/
Raadpleeg de officiële documentatie voor meer informatie over Microsoft Cognitive Services: https://www.microsoft.com/cognitive-services/en-us/computer-vision-api
Vind een geüpload voorbeeld op mijn GitHub: https://github.com/Daniel-Krzyczkowski/XamarinIOS/tree/master/XamariniOS_CognitiveServices
Ik voeg ook een link toe aan mijn blog waar ik heb gepresenteerd hoe Cognitive Services te gebruiken met de Xamarin Forms-toepassing: http://mobileprogrammer.pl
Verbinding maken met Microsoft Cognitive Services
In dit voorbeeld leert u hoe u Microsoft Cognitive Services kunt gebruiken met de mobiele applicatie Xamarin iOS. We zullen Computer Vision API gebruiken om te detecteren wat er op de foto staat.
Nadat u het Xamarin.iOS-project hebt gemaakt, voegt u het onderstaande NuGet-pakket toe aan het project:
https://www.nuget.org/packages/Microsoft.ProjectOxford.Vision/
Met deze bibliotheek kunnen we Cognitive Services gebruiken in onze iOS-app. Ik ga ervan uit dat je al een Microsoft-account hebt om het te gebruiken en je hebt Computer Vision Api zoals op het onderstaande scherm ingeschakeld:
Zodra u onderaan op "Abonneren" klikt, wordt Api Key gegenereerd:
Nu kunnen we beginnen met het configureren van toegang tot Cognitive Services vanuit de iOS-app. Ten eerste moeten we een beeld krijgen voor de analyse. Om dit te doen kunnen we de Xamarin Media Component gebruiken die hieronder beschikbaar is: https://components.xamarin.com/view/mediaplugin
Zodra het succesvol is geïnstalleerd, laten we een eenvoudige gebruikersinterface maken met de afbeelding en de knop om de afbeelding in de galerij te selecteren. De grootte van de bedieningselementen is aan jou.
Open Main.storyboard en voeg UIImageView en UIButton-besturingselementen toe als standaard ViewController. Voeg ze namen toe: "SelectedPictureImageView" en "SelectButton":
Nu moeten we "Touch Up Inside" -gebeurtenis toevoegen om afbeeldingsselectie af te handelen:
partial void SelectButtonClick(UIButton sender)
{
selectImage();
}
async void selectImage()
{
var selectedImage = await CrossMedia.Current.PickPhotoAsync();
SelectedPictureImageView.Image = new UIImage(NSData.FromStream(selectedImage.GetStream()));
}
Nu willen we analyse-informatie weergeven zodra Cognitive Services de informatie retourneert. Voeg een label toe onder de knop "AnalysisLabel":
Het is tijd om Computer Vision API te verbinden!
Om informatie over de geselecteerde foto te krijgen, voeg onderstaande methode toe. Vergeet niet je API-sleutel te plakken!
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;
}
}
Nu kunt u het oproepen met de methode "selectImage":
async void selectImage()
{
var selectedImage = await CrossMedia.Current.PickPhotoAsync();
SelectedPictureImageView.Image = new UIImage(NSData.FromStream(selectedImage.GetStream()));
await analyseImage(selectedImage.GetStream());
}
Nadat u een afbeelding hebt geselecteerd, zal Microsoft Cognitive Services deze analyseren en het resultaat retourneren:
Vergeet niet dat uw afbeelding niet te groot kan zijn - in dit geval ontvangt u informatie zoals hieronder:
Er zijn veel andere services die u kunt proberen te gebruiken. Raadpleeg de officiële documentatie (bijgevoegde link) voor meer informatie.