Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Warnung
Am 30. Oktober 2020 wurden die Bing Search-APIs von Azure AI-Diensten zu Bing Search Services verschoben. Diese Dokumentation wird nur zur Referenz bereitgestellt. Eine aktualisierte Dokumentation finden Sie in der Dokumentation zu den Bing-Suche-APIs. Anweisungen zum Erstellen neuer Azure-Ressourcen für die Bing-Suche finden Sie unter Erstellen einer Ressource für die Bing-Suche über Azure Marketplace.
Es sind mehrere Endpunkte über die Bing Image Search-API verfügbar. Der /details Endpunkt akzeptiert eine POST-Anforderung mit einem Bild und kann eine Vielzahl von Details zum Bild zurückgeben. Diese C#-Anwendung sendet ein Bild mit dieser API und zeigt die von Bing zurückgegebenen Details an, die JSON-Objekte sind, z. B. folgendes:
In diesem Tutorial werden folgende Punkte erläutert:
- Verwenden des Bildsuche-Endpunkts
/detailsin einerPOSTAnforderung - Angeben von Headern für die Anforderung
- Verwenden von URL-Parametern zum Angeben von Ergebnissen
- Hochladen der Bilddaten und Senden der
POSTAnforderung - Gebe die JSON-Ergebnisse in der Konsole aus
Voraussetzungen
- Jede Version von Visual Studio 2017 oder höher.
Erstellen einer Suchanforderung für Bilddetails
Es folgt der /details Endpunkt, der POST-Anforderungen mit Bilddaten im Anforderungstext akzeptiert. Sie können den folgenden globalen Endpunkt oder den benutzerdefinierten Unterdomänen- Endpunkt verwenden, der im Azure-Portal für Ihre Ressource angezeigt wird.
https://api.cognitive.microsoft.com/bing/v7.0/images/details
Beim Erstellen der Suchanforderungs-URL folgt der modules Parameter dem obigen Endpunkt und gibt die Arten von Details an, die die Ergebnisse enthalten:
modules=All-
modules=RecognizedEntities(Personen oder Orte, die im Bild sichtbar sind)
Geben Sie modules=All in der POST-Anforderung an, um JSON-Text abzurufen, der Folgendes enthält:
-
bestRepresentativeQuery– eine Bing-Abfrage, die Bilder zurückgibt, die dem hochgeladenen Bild ähneln -
detectedObjects- Objekte, die im Bild gefunden wurden -
image- Metadaten für das Bild -
imageInsightsToken– ein Token für eine spätere GET-Anforderung, mit der (Personen oder Orte, die im Bild sichtbar sind) aus dem Bild abgerufen werdenRecognizedEntities. -
imageTags- Tags für das Bild -
pagesIncluding- Webseiten, die das Bild enthalten -
relatedSearches- Sucht anhand von Details im Bild. -
visuallySimilarImages- ähnliche Bilder im Web.
Geben Sie modules=RecognizedEntities in der POST-Anforderung an, nur abzurufen imageInsightsToken, die in einer nachfolgenden GET-Anforderung verwendet werden kann, um Personen oder Orte im Bild zu identifizieren.
Erstellen eines WebClient-Objekts und Festlegen von Headern für die API-Anforderung
Erstellen Sie ein WebClient Objekt, und legen Sie die Kopfzeilen fest. Alle Anforderungen an die Bing Search-API erfordern eine Ocp-Apim-Subscription-Key. Eine POST Anforderung zum Hochladen eines Bilds muss auch angegeben ContentType: multipart/form-datawerden.
WebClient client = new WebClient();
client.Headers["Ocp-Apim-Subscription-Key"] = accessKey;
client.Headers["ContentType"] = "multipart/form-data";
Laden Sie das Bild hoch, und zeigen Sie die Ergebnisse an.
Die WebClient-Methode der UpLoadFile()-Klasse formatiert Daten für die POST-Anforderung, einschließlich der Formatierung von RequestStream und dem Aufrufen von HttpWebRequest.
Rufen Sie WebClient.UpLoadFile() mit dem /details Endpunkt und der hochzuladenden Bilddatei auf. Verwenden Sie die JSON-Antwort, um eine Instanz der SearchResult Struktur zu initialisieren und die Antwort zu speichern.
const string uriBase = "https://api.cognitive.microsoft.com/bing/v7.0/images/details";
// The image to upload. Replace with your file and path.
const string imageFile = "your-image.jpg";
byte[] resp = client.UploadFile(uriBase + "?modules=All", imageFile);
var json = System.Text.Encoding.Default.GetString(resp);
// Create result object for return
var searchResult = new SearchResult()
{
jsonResult = json,
relevantHeaders = new Dictionary<String, String>()
};
Diese JSON-Antwort kann dann in die Konsole gedruckt werden.
Verwenden Sie ein Bild-Einsicht-Token in einer Anforderung
Um die ImageInsightsToken zurückgegebenen Ergebnisse einer POSTAnforderung zu verwenden, können Sie sie einer GET Anforderung hinzufügen. Beispiel:
https://api.cognitive.microsoft.com/bing/v7.0/images/details?InsightsToken="bcid_A2C4BB81AA2C9EF8E049C5933C546449*ccid_osS7gaos*mid_BF7CC4FC4A882A3C3D56E644685BFF7B8BACEAF2
Wenn es identifizierbare Personen oder Orte im Bild gibt, gibt diese Anforderung Informationen zu ihnen zurück.