La recherche d’image inversée et la correction d’images déformées en temps réel constituent un défi courant pour les développeurs qui créent des fonctionnalités de recherche visuelle. Aspose.CAD Cloud SDK for .NET fournit une bibliothèque puissante qui simplifie à la fois la recherche d’image inversée et le redressement d’images en C#. Dans ce guide, vous verrez comment redresser un fichier PNG, appeler Bing Visual Search pour une recherche inversée, et intégrer l’ensemble du flux de travail avec du code concis et des exemples cURL.
Avant de commencer : prérequis et installation
Pour suivre ce tutoriel, vous avez besoin de :
- .NET 6.0 ou version ultérieure et un IDE tel que Visual Studio 2022.
- Un compte Aspose Cloud avec clé API et secret client.
- Accès à l’API Bing Visual Search (clé d’abonnement requise).
- Le fichier image d’entrée (
input.png) placé dans le dossier du projet.
Installez la bibliothèque via NuGet :
dotnet add package Aspose.cad-Cloud
Téléchargez le dernier package depuis la page de téléchargement. Après l’installation, vous pouvez commencer à coder le flux de travail.
Construire pas à pas : recherche d’image inversée et redressement d’image en .NET
L’implémentation est divisée en cinq étapes logiques. Chaque étape montre uniquement le code pertinent extrait de l’exemple complet.
Étape 1 : Charger l’image source
Lisez le fichier PNG dans un tableau d’octets et créez un flux mémoire que la bibliothèque peut consommer.
string inputImagePath = "input.png";
byte[] inputBytes = File.ReadAllBytes(inputImagePath);
using var inputStream = new MemoryStream(inputBytes);
Étape 2 : Configurer la bibliothèque Aspose.CAD Cloud
Créez un objet de configuration avec votre clé API et l’URL de base, puis instanciez le ImageApi.
var config = new Configuration
{
ApiKey = "YOUR_ASPOSE_CAD_CLOUD_API_KEY",
BasePath = "https://api.aspose.cloud"
};
var imageApi = new ImageApi(config);
Pour plus de détails, consultez la référence API.
Étape 3 : Redresser l’image à l’aide de la bibliothèque
Créez une DeskewImageRequest avec le flux d’image et appelez l’opération de désinclinaison.
var deskewRequest = new DeskewImageRequest
{
ImageData = inputStream
// Optional: Angle, BackgroundColor can be set here
};
byte[] deskewedBytes = await imageApi.PostImageDeskewAsync(deskewRequest);
Étape 4 : Enregistrer l’image redressée
Écrivez le tableau d’octets retourné dans un nouveau fichier.
string deskewedImagePath = "deskewed.png";
File.WriteAllBytes(deskewedImagePath, deskewedBytes);
Console.WriteLine($"Deskewed image saved to {deskewedImagePath}");
Étape 5 : Effectuer une recherche d’image inversée via Bing Visual Search API
Créez un HttpClient, ajoutez l’en‑tête de clé d’abonnement, puis publiez l’image originale sur 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);
Avec ces étapes, vous disposez d’un flux de travail complet de recherche d’image inversée et de redressement d’image en C#.
Exemple complet fonctionnel pour la recherche d’image inversée et l’automatisation du redressement d’image
L’exemple ci‑dessous montre comment combiner toutes les parties en une seule application console.
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; }
}
}
Note : Cet exemple de code démontre la fonctionnalité principale. Avant de l’utiliser dans votre projet, assurez‑vous de mettre à jour tous les chemins de fichiers et les valeurs de configuration pour qu’ils correspondent à votre environnement réel, vérifiez que toutes les dépendances requises sont correctement installées, et testez soigneusement dans votre environnement de développement. Si vous rencontrez des problèmes, veuillez consulter la documentation officielle ou contacter l’équipe de support pour obtenir de l’aide.
Effectuer les mêmes opérations via l’API REST en utilisant cURL
Si vous préférez une approche pure REST, le même flux de travail peut être exécuté avec des commandes cURL.
1. Authentifier et obtenir un jeton d’accès
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. Téléchargez le PNG source et demandez le redressement
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. Appelez Bing Visual Search pour la recherche d’image inversée
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"
Ces commandes exécutent les mêmes étapes que le code C#, vous permettant d’intégrer la fonctionnalité dans n’importe quel environnement capable d’exécuter des scripts shell.
Pour des paramètres supplémentaires et les formats de réponse, consultez la documentation officielle de l’API.
Conclusion
Implémenter la recherche d’images inversée et le redressement d’images en C# devient simple avec le Aspose.CAD Cloud SDK for .NET. La bibliothèque gère le prétraitement des images, tandis que Bing Visual Search offre de puissantes capacités de recherche inversée. En suivant les étapes ci‑dessus, vous pouvez créer un pipeline de recherche visuelle robuste qui corrige les entrées inclinées avant l’interrogation. N’oubliez pas d’obtenir une licence valide pour une utilisation en production ; les détails tarifaires sont disponibles sur la page du produit et vous pouvez obtenir une licence temporaire depuis la page de licence temporaire. Avec le code et les exemples cURL en main, vous êtes prêt à intégrer cette fonctionnalité dans vos applications.
FAQs
-
Qu’est-ce que la recherche d’image inversée et le redressement d’image (Deskewing) permettent dans une application C# ?
Cela vous permet de corriger automatiquement l’orientation des images téléchargées, puis de trouver des éléments visuellement similaires à l’aide d’un service de recherche externe, améliorant l’expérience utilisateur et la précision de la recherche. -
Puis-je utiliser la bibliothèque avec d’autres formats d’image en plus du PNG ?
Oui, la bibliothèque prend en charge les formats raster courants tels que JPG et BMP. Il suffit de changer l’extension du fichier dans le code. -
Dois-je héberger des services pour exécuter ce code ?
Non, le Aspose.CAD Cloud SDK for .NET est une bibliothèque basée sur le cloud, donc tout le traitement se fait sur les serveurs d’Aspose. Vous avez seulement besoin d’une connexion Internet et d’identifiants valides. -
Comment puis-je gérer efficacement de gros lots d’images ?
Traitez les images de manière asynchrone, mettez en cache les résultats de redressement, et réutilisez le même jeton d’accès pour plusieurs appels d’API. Cela réduit la latence et la surcharge de l’API.