Xamarin.iOS
Ansluter till Microsoft Cognitive Services
Sök…
Anmärkningar
I det här exemplet använde vi Microsoft.ProjectOxford.Vision NuGet-paketet: https://www.nuget.org/packages/Microsoft.ProjectOxford.Vision/
För att läsa mer om Microsoft Cognitive Services, se den officiella dokumentationen: https://www.microsoft.com/cognitive-services/en-us/computer-vision-api
Hitta uppladdat prov på min GitHub: https://github.com/Daniel-Krzyczkowski/XamarinIOS/tree/master/XamariniOS_CognitiveServices
Jag bifogar också länk till min blogg där jag presenterade hur man använder Cognitive Services med applikationen Xamarin Forms: http://mobileprogrammer.pl
Ansluter till Microsoft Cognitive Services
I det här exemplet kommer du att lära dig hur du använder Microsoft Cognitive Services med Xamarin iOS-mobilapplikation. Vi kommer att använda Computer Vision API för att upptäcka vad som finns på bilden.
När du har skapat Xamarin.iOS-projekt, lägg till NuGet-paketet till projektet nedan:
https://www.nuget.org/packages/Microsoft.ProjectOxford.Vision/
Med detta bibliotek kan vi använda kognitiva tjänster i vår iOS-app. Jag antar att du redan har registrerat ett Microsoft-konto för att använda det och att du har aktiverat Computer Vision Api som på skärmen nedan:
När du klickar på "Prenumerera" längst ner kommer Api Key att genereras:
Nu kan vi börja konfigurera åtkomst till kognitiva tjänster från iOS-appen. Först måste vi få en bild för analysen. För att göra det kan vi använda Xamarin Media Component tillgängligt nedan: https://components.xamarin.com/view/mediaplugin
När det väl har installerats låt oss skapa enkel UI med bild och knapp för att välja bild från galleriet. Storleken på kontrollerna är upp till dig.
Öppna Main.storyboard och lägg till UIImageView- och UIButton-kontroller gör ViewController som standard. Lägg till namnen på dem: "SelectedPictureImageView" och "SelectButton":
Nu ska vi lägga till "Touch Up Inside" -händelseshanteraren för att hantera val av bild:
partial void SelectButtonClick(UIButton sender)
{
selectImage();
}
async void selectImage()
{
var selectedImage = await CrossMedia.Current.PickPhotoAsync();
SelectedPictureImageView.Image = new UIImage(NSData.FromStream(selectedImage.GetStream()));
}
Nu skulle vi vilja visa analysinformation när Cognitive Services returnerar informationen. Lägg till etikett under knappen som heter "Analysetikett":
Det är dags att ansluta Computer Vision API!
För att få information om vald bild lägg till metod nedan. Kom ihåg att klistra in API-nyckeln!
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 kan du åberopa det i "selectImage" -metoden:
async void selectImage()
{
var selectedImage = await CrossMedia.Current.PickPhotoAsync();
SelectedPictureImageView.Image = new UIImage(NSData.FromStream(selectedImage.GetStream()));
await analyseImage(selectedImage.GetStream());
}
När du väljer bild kommer Microsoft Cognitive Services att analysera den och returnera resultatet:
Kom ihåg att din bild inte kan vara för stor - i det här fallet får du information som nedan:
Det finns många andra tjänster som du kan försöka använda. Se den officiella dokumentationen (länk bifogad) för att få mer information.