Die umgekehrte Bildsuche und das Korrigieren schief stehender Bilder in Echtzeit ist eine häufige Herausforderung für Entwickler, die visuelle Suchfunktionen erstellen. Aspose.CAD Cloud SDK for .NET bietet eine leistungsstarke Bibliothek, die sowohl die umgekehrte Bildsuche als auch das Bild‑Deskewing in C# vereinfacht. In diesem Leitfaden sehen Sie, wie Sie ein PNG gerade stellen, Bing Visual Search für die umgekehrte Suche aufrufen und den gesamten Workflow mit prägnantem Code und cURL‑Beispielen integrieren.
Vor dem Start: Voraussetzungen und Installation
Um diesem Tutorial zu folgen, benötigen Sie:
- .NET 6.0 oder höher und eine IDE wie Visual Studio 2022.
- Ein Aspose Cloud‑Konto mit API‑Schlüssel und Client‑Secret.
- Zugriff auf die Bing Visual Search API (Abonnementschlüssel erforderlich).
- Die Eingabebilddatei (
input.png) im Projektordner abgelegt.
Installieren Sie die Bibliothek über NuGet:
dotnet add package Aspise.cad-Cloud
Laden Sie das neueste Paket von der Download‑Seite herunter. Nach der Installation können Sie mit der Programmierung des Workflows beginnen.
Aufbau Schritt für Schritt: Umgekehrte Bildsuche und Bildentzerrung in .NET
Die Implementierung ist in fünf logische Schritte unterteilt. Jeder Schritt zeigt nur den relevanten Code, der aus dem vollständigen Beispiel extrahiert wurde.
Schritt 1: Laden des Quellbildes
Lesen Sie die PNG‑Datei in ein Byte‑Array ein und erstellen Sie einen MemoryStream, den die Bibliothek verwenden kann.
string inputImagePath = "input.png";
byte[] inputBytes = File.ReadAllBytes(inputImagePath);
using var inputStream = new MemoryStream(inputBytes);
Schritt 2: Konfigurieren Sie die Aspose.CAD Cloud-Bibliothek
Erstellen Sie ein Konfigurationsobjekt mit Ihrem API‑Schlüssel und Ihrer Basis‑URL und instanziieren Sie dann die ImageApi.
var config = new Configuration
{
ApiKey = "YOUR_ASPOSE_CAD_CLOUD_API_KEY",
BasePath = "https://api.aspose.cloud"
};
var imageApi = new ImageApi(config);
Weitere Details finden Sie in der API-Referenz.
Schritt 3: Bild mit der Bibliothek entzerren
Erstellen Sie eine DeskewImageRequest mit dem Bild‑Stream und rufen Sie die Deskew‑Operation auf.
var deskewRequest = new DeskewImageRequest
{
ImageData = inputStream
// Optional: Angle, BackgroundColor can be set here
};
byte[] deskewedBytes = await imageApi.PostImageDeskewAsync(deskewRequest);
Schritt 4: Speichern Sie das entzerrte Bild
Schreiben Sie das zurückgegebene Byte‑Array in eine neue Datei.
string deskewedImagePath = "deskewed.png";
File.WriteAllBytes(deskewedImagePath, deskewedBytes);
Console.WriteLine($"Deskewed image saved to {deskewedImagePath}");
Schritt 5: Durchführung einer umgekehrten Bildsuche über die Bing Visual Search API
Erstellen Sie einen HttpClient, fügen Sie den Header für den Abonnements‑Schlüssel hinzu und senden Sie das Originalbild an Bing.
string bingSubscriptionKey = "YOUR_BING_VISUAL_SEARCH_SUBSCRIPTION_KEY";
string bingEndpoint = "https://api.bing.microsoft.com/v7.0/images/visualsearch";
using var httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", bingSubscriptionKey);
using var multipartContent = new MultipartFormDataContent();
var imageContent = new ByteArrayContent(inputBytes);
imageContent.Headers.ContentType = MediaTypeHeaderValue.Parse("application/octet-stream");
multipartContent.Add(imageContent, "image", Path.GetFileName(inputImagePath));
HttpResponseMessage response = await httpClient.PostAsync(bingEndpoint, multipartContent);
string jsonResult = await response.Content.ReadAsStringAsync();
Console.WriteLine("Reverse Image Search Result:");
Console.WriteLine(jsonResult);
Mit diesen Schritten haben Sie einen vollständigen Reverse‑Bildsuche‑ und Bild‑Entzerrungs‑Workflow in C#.
Vollständiges funktionierendes Beispiel für die umgekehrte Bildsuche und Bildentzerrungsautomatisierung
Das folgende Beispiel zeigt, wie man alle Teile zu einer einzigen Konsolenanwendung kombiniert.
using System;
using System.IO;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;
using Aspose.CAD.Cloud.Sdk.Api;
using Aspose.CAD.Cloud.Sdk.Client;
using Aspose.CAD.Cloud.Sdk.Model;
namespace ReverseImageSearchDeskew
{
class Program
{
static async Task Main(string[] args)
{
// Aspose.CAD Cloud configuration
var config = new Configuration
{
ApiKey = "YOUR_ASPOSE_CAD_CLOUD_API_KEY",
BasePath = "https://api.aspose.cloud"
};
var imageApi = new ImageApi(config);
// File paths
string inputImagePath = "input.png";
string deskewedImagePath = "deskewed.png";
// Load input image
byte[] inputBytes = File.ReadAllBytes(inputImagePath);
using var inputStream = new MemoryStream(inputBytes);
// Deskew the image using Aspose.CAD Cloud
var deskewRequest = new DeskewImageRequest
{
ImageData = inputStream
// Additional optional parameters (e.g., Angle, BackgroundColor) can be set here
};
byte[] deskewedBytes = await imageApi.PostImageDeskewAsync(deskewRequest);
File.WriteAllBytes(deskewedImagePath, deskewedBytes);
Console.WriteLine($"Deskewed image saved to {deskewedImagePath}");
// Reverse image search using Bing Visual Search API
string bingSubscriptionKey = "YOUR_BING_VISUAL_SEARCH_SUBSCRIPTION_KEY";
string bingEndpoint = "https://api.bing.microsoft.com/v7.0/images/visualsearch";
using var httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", bingSubscriptionKey);
using var multipartContent = new MultipartFormDataContent();
var imageContent = new ByteArrayContent(inputBytes);
imageContent.Headers.ContentType = MediaTypeHeaderValue.Parse("application/octet-stream");
multipartContent.Add(imageContent, "image", Path.GetFileName(inputImagePath));
HttpResponseMessage response = await httpClient.PostAsync(bingEndpoint, multipartContent);
string jsonResult = await response.Content.ReadAsStringAsync();
Console.WriteLine("Reverse Image Search Result:");
Console.WriteLine(jsonResult);
}
}
// Request model for deskew operation (matches Aspose.CAD Cloud SDK expectations)
public class DeskewImageRequest
{
public Stream ImageData { get; set; }
// Optional: public double? Angle { get; set; }
// Optional: public string BackgroundColor { get; set; }
}
}
Hinweis: Dieses Codebeispiel demonstriert die Kernfunktionalität. Bevor Sie es in Ihrem Projekt verwenden, stellen Sie sicher, dass Sie alle Dateipfade und Konfigurationswerte an Ihre tatsächliche Umgebung anpassen, dass alle erforderlichen Abhängigkeiten ordnungsgemäß installiert sind und testen Sie gründlich in Ihrer Entwicklungsumgebung. Wenn Sie auf Probleme stoßen, lesen Sie bitte die offizielle Dokumentation oder wenden Sie sich an das Support-Team für Unterstützung.
dieselben Vorgänge über die REST-API mit cURL ausführen
Wenn Sie einen reinen REST‑Ansatz bevorzugen, kann derselbe Workflow mit cURL‑Befehlen ausgeführt werden.
1. Authentifizieren und ein Zugriffstoken erhalten
curl -X POST "https://api.aspose.cloud/connect/token" \
-d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
2. Laden Sie das Quell-PNG hoch und fordern Sie die Entzerrung an
curl -X PUT "https://api.aspose.cloud/v3.0/cad/deskew" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/octet-stream" \
--data-binary @input.png \
-o deskewed.png
3. Rufen Sie Bing Visual Search für die umgekehrte Bildsuche auf
curl -X POST "https://api.bing.microsoft.com/v7.0/images/visualsearch" \
-H "Ocp-Apim-Subscription-Key: YOUR_BING_VISUAL_SEARCH_SUBSCRIPTION_KEY" \
-F "image=@input.png;type=application/octet-stream"
Diese Befehle führen die gleichen Schritte aus, die im C#‑Code gezeigt werden, und ermöglichen es Ihnen, die Funktionalität in jede Umgebung zu integrieren, die Shell‑Skripte ausführen kann.
Für zusätzliche Parameter und Antwortformate siehe die offizielle API-Dokumentation.
Fazit
Implementierung der umgekehrten Bildsuche und Bildentzerrung in C# wird mit dem Aspose.CAD Cloud SDK for .NET unkompliziert. Die Bibliothek übernimmt die Bildvorverarbeitung, während Bing Visual Search leistungsstarke Rückwärtssuchfunktionen bereitstellt. Wenn Sie den obigen Schritten folgen, können Sie eine robuste visuelle Suchpipeline erstellen, die schiefe Eingaben vor der Abfrage korrigiert. Denken Sie daran, für den Produktionseinsatz eine gültige Lizenz zu erwerben; Preisdetails finden Sie auf der Produktseite und Sie können eine temporäre Lizenz von der temporäre Lizenzseite erhalten. Mit dem Code und den cURL‑Beispielen sind Sie bereit, diese Funktionalität in Ihre Anwendungen zu integrieren.
Häufig gestellte Fragen
-
Was bewirken die umgekehrte Bildsuche und das Bild-Deskewing in einer C#‑Anwendung?
Sie ermöglicht es, die Ausrichtung hochgeladener Bilder automatisch zu korrigieren und anschließend visuell ähnliche Elemente mithilfe eines externen Suchdienstes zu finden, wodurch die Benutzererfahrung und die Suchgenauigkeit verbessert werden. -
Kann ich die Bibliothek mit anderen Bildformaten als PNG verwenden?
Ja, die Bibliothek unterstützt gängige Rasterformate wie JPG und BMP. Ändern Sie einfach die Dateierweiterung im Code. -
Muss ich irgendwelche Dienste hosten, um diesen Code auszuführen?
Nein, das Aspose.CAD Cloud SDK for .NET ist eine cloudbasierte Bibliothek, sodass die gesamte Verarbeitung auf den Aspose‑Servern erfolgt. Sie benötigen lediglich eine Internetverbindung und gültige Anmeldeinformationen. -
Wie kann ich große Bildchargen effizient verarbeiten?
Verarbeiten Sie Bilder asynchron, zwischenspeichern Sie entsteuerte Ergebnisse und verwenden Sie dasselbe Zugriffstoken für mehrere API‑Aufrufe erneut. Dies reduziert Latenz und API‑Overhead.