Omvendt billedsøgning og korrigering af skæve billeder i realtid er en almindelig udfordring for udviklere, der bygger visuelle søgefunktioner. Aspose.CAD Cloud SDK for .NET leverer et kraftfuldt bibliotek, der forenkler både omvendt billedsøgning og billedudretning i C#. I denne vejledning vil du se, hvordan du retter et PNG, kalder Bing Visual Search for omvendt opslag, og integrerer hele arbejdsflowet med kortfattet kode og cURL‑eksempler.
Før du begynder: Forudsætninger og installation
For at følge denne vejledning skal du have:
- .NET 6.0 eller senere og en IDE såsom Visual Studio 2022.
- En Aspose Cloud‑konto med API‑nøgle og client secret.
- Adgang til Bing Visual Search API (abonnementsnøgle påkrævet).
- Inputbilledfilen (
input.png) placeret i projektmappen.
Installer biblioteket via NuGet:
dotnet add package Aspose.cad-Cloud
Download den nyeste pakke fra download-siden. Efter installationen kan du begynde at kode workflowet.
Opbygning trin for trin: Omvendt billedsøgning og billedudjævning i .NET
Implementeringen er opdelt i fem logiske trin. Hvert trin viser kun den relevante kode, der er udtrukket fra det fulde eksempel.
Trin 1: Indlæs kilde‑billedet
Læs PNG-filen ind i en byte‑array og opret en memory stream, som biblioteket kan bruge.
string inputImagePath = "input.png";
byte[] inputBytes = File.ReadAllBytes(inputImagePath);
using var inputStream = new MemoryStream(inputBytes);
Trin 2: Konfigurer Aspose.CAD Cloud-biblioteket
Opret et konfigurationsobjekt med din API‑nøgle og base‑URL, og opret derefter en forekomst af ImageApi.
var config = new Configuration
{
ApiKey = "YOUR_ASPOSE_CAD_CLOUD_API_KEY",
BasePath = "https://api.aspose.cloud"
};
var imageApi = new ImageApi(config);
For flere detaljer se API-referencen.
Trin 3: Korriger skråning af billedet ved hjælp af biblioteket
Byg en DeskewImageRequest med billedstrømmen og kald deskew‑operationen.
var deskewRequest = new DeskewImageRequest
{
ImageData = inputStream
// Optional: Angle, BackgroundColor can be set here
};
byte[] deskewedBytes = await imageApi.PostImageDeskewAsync(deskewRequest);
Trin 4: Gem det korrigerede billede
Skriv den returnerede byte-array til en ny fil.
string deskewedImagePath = "deskewed.png";
File.WriteAllBytes(deskewedImagePath, deskewedBytes);
Console.WriteLine($"Deskewed image saved to {deskewedImagePath}");
Trin 5: Udfør omvendt billedsøgning via Bing Visual Search API
Opret en HttpClient, tilføj abonnementsnøgle‑headeren, og post det originale billede til 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);
Med disse trin har du en komplet omvendt billedsøgning og billed‑Deskewing‑workflow i C#.
Fuld fungerende eksempel på omvendt billedsøgning og automatisering af billedrettelse
Eksemplet nedenfor demonstrerer, hvordan man kombinerer alle dele i en enkelt konsolapplikation.
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; }
}
}
Bemærk: Dette kodeeksempel demonstrerer kernefunktionaliteten. Før du bruger det i dit projekt, skal du sikre dig, at du opdaterer alle filstier og konfigurationsværdier, så de matcher dit faktiske miljø, bekræfter at alle nødvendige afhængigheder er korrekt installeret, og tester grundigt i dit udviklingsmiljø. Hvis du støder på problemer, så se venligst den officielle dokumentation eller kontakt supportteamet for assistance.
Udførelse af de samme operationer via REST API ved hjælp af cURL
Hvis du foretrækker en ren REST‑tilgang, kan den samme arbejdsgang udføres med cURL‑kommandoer.
1. Godkend og hent en adgangstoken
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. Upload kilde-PNG’en og anmod om at rette skråningen
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. Kald Bing Visual Search for omvendt billedsøgning
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"
Disse kommandoer udfører de identiske trin, der er vist i C#-koden, og giver dig mulighed for at integrere funktionaliteten i ethvert miljø, der kan køre shell‑scripts.
For yderligere parametre og svarformater, se den officielle API-dokumentation.
Konklusion
Implementering af omvendt billedsøgning og billedrettelse i C# bliver enkelt med Aspose.CAD Cloud SDK for .NET. Biblioteket håndterer billedforbehandling, mens Bing Visual Search leverer kraftfulde omvendte opslagsmuligheder. Ved at følge trinnene ovenfor kan du opbygge en robust visuel søge‑pipeline, der korrigerer skæve input, inden du foretager forespørgslen. Husk at anskaffe en gyldig licens til produktionsbrug; prisoplysninger findes på produktsiden, og du kan få en midlertidig licens fra midlertidig licensside. Med koden og cURL‑eksemplerne klar er du klar til at integrere denne funktionalitet i dine applikationer.
FAQs
-
Hvad opnår omvendt billedsøgning og billedretning (Deskewing) i en C#-applikation?
Det gør det muligt automatisk at korrigere orienteringen af uploadede billeder og derefter finde visuelt lignende elementer ved hjælp af en ekstern søgetjeneste, hvilket forbedrer brugeroplevelsen og søgepræcisionen. -
Kan jeg bruge biblioteket med andre billedformater end PNG?
Ja, biblioteket understøtter almindelige rasterformater såsom JPG og BMP. Skift blot filendelsen i koden. -
Skal jeg hoste nogen tjenester for at køre denne kode?
Nej, Aspose.CAD Cloud SDK for .NET er et cloud‑baseret bibliotek, så al behandling sker på Aspose‑servere. Du har kun brug for internetforbindelse og gyldige legitimationsoplysninger. -
Hvordan kan jeg håndtere store billedbatcher effektivt?
Process billeder asynkront, cache deskewede resultater, og genbrug den samme adgangstoken til flere API‑opkald. Dette reducerer latenstid og API‑overhead.