Xamarin.iOS
Verbindung mit Microsoft Cognitive Services
Suche…
Bemerkungen
In diesem Beispiel haben wir das NuGet-Paket Microsoft.ProjectOxford.Vision verwendet: https://www.nuget.org/packages/Microsoft.ProjectOxford.Vision/
Weitere Informationen zu Microsoft Cognitive Services finden Sie in der offiziellen Dokumentation: https://www.microsoft.com/cognitive-services/en-us/computer-vision-api
Das hochgeladene Sample finden Sie auf meinem GitHub: https://github.com/Daniel-Krzyczkowski/XamarinIOS/tree/master/XamariniOS_CognitiveServices
Ich füge auch einen Link zu meinem Blog hinzu, auf dem ich die Verwendung von Cognitive Services mit der Anwendung Xamarin Forms vorgestellt habe: http://mobileprogrammer.pl
Verbindung mit Microsoft Cognitive Services
In diesem Beispiel erfahren Sie, wie Sie Microsoft Cognitive Services mit der mobilen Xamarin iOS-Anwendung verwenden. Wir werden die Computer Vision-API verwenden, um zu erkennen, was auf dem Bild zu sehen ist.
Nachdem Sie ein Xamarin.iOS-Projekt erstellt haben, fügen Sie das NuGet-Paket zum Projekt hinzu:
https://www.nuget.org/packages/Microsoft.ProjectOxford.Vision/
Mit dieser Bibliothek können wir Cognitive Services in unserer iOS-App nutzen. Ich gehe davon aus, dass Sie bereits ein Microsoft-Konto für die Verwendung registriert haben und Computer Vision Api wie auf dem Bildschirm unten aktiviert haben:
Wenn Sie unten auf "Abonnieren" klicken, wird der Api-Schlüssel generiert:
Jetzt können wir den Zugriff auf Cognitive Services über die iOS-App konfigurieren. Zunächst müssen wir uns ein Bild für die Analyse machen. Dazu können wir die Xamarin Media Component verwenden, die unter folgender Adresse verfügbar ist: https://components.xamarin.com/view/mediaplugin
Nach der erfolgreichen Installation erstellen wir eine einfache Benutzeroberfläche mit dem Bild und der Schaltfläche, um ein Bild aus der Galerie auszuwählen. Die Größe der Steuerelemente liegt bei Ihnen.
Öffnen Sie Main.storyboard und fügen Sie UIImageView hinzu, und UIButton-Steuerelemente führen den standardmäßigen ViewController aus. Fügen Sie ihnen Namen hinzu: "SelectedPictureImageView" und "SelectButton":
Jetzt sollten wir den Event-Handler "Touch Up Inside" hinzufügen, um die Bildauswahl durchzuführen:
partial void SelectButtonClick(UIButton sender)
{
selectImage();
}
async void selectImage()
{
var selectedImage = await CrossMedia.Current.PickPhotoAsync();
SelectedPictureImageView.Image = new UIImage(NSData.FromStream(selectedImage.GetStream()));
}
Jetzt möchten wir die Analyseinformationen anzeigen, sobald Cognitive Services die Informationen zurückgibt. Fügen Sie unter dem Button "AnalysisLabel" ein Label hinzu:
Es ist Zeit, die Computer Vision-API anzuschließen!
Um Informationen über das ausgewählte Bild zu erhalten, fügen Sie die Methode unten hinzu. Denken Sie daran, Ihren API-Schlüssel einzufügen!
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;
}
}
Jetzt können Sie es in der "selectImage" -Methode aufrufen:
async void selectImage()
{
var selectedImage = await CrossMedia.Current.PickPhotoAsync();
SelectedPictureImageView.Image = new UIImage(NSData.FromStream(selectedImage.GetStream()));
await analyseImage(selectedImage.GetStream());
}
Sobald Sie ein Bild ausgewählt haben, wird es von Microsoft Cognitive Services analysiert und das Ergebnis zurückgegeben:
Denken Sie daran, dass Ihr Bild nicht zu groß sein kann. In diesem Fall erhalten Sie folgende Informationen:
Es gibt viele andere Dienste, die Sie verwenden können. Weitere Informationen finden Sie in der offiziellen Dokumentation (Link im Anhang).