A pesquisa reversa de imagens e a correção de imagens inclinadas em tempo real são desafios comuns para desenvolvedores que criam recursos de busca visual. Aspose.CAD Cloud SDK for .NET fornece uma biblioteca poderosa que simplifica tanto a pesquisa reversa de imagens quanto a correção de inclinação de imagens em C#. Neste guia, você verá como corrigir a inclinação de um PNG, chamar o Bing Visual Search para busca reversa e integrar todo o fluxo de trabalho com código conciso e exemplos de cURL.

Antes de Começar: Pré-requisitos e Instalação

Para seguir este tutorial, você precisa:

  • .NET 6.0 ou posterior e um IDE como o Visual Studio 2022.
  • Uma conta Aspose Cloud com chave de API e segredo do cliente.
  • Acesso à Bing Visual Search API (chave de assinatura necessária).
  • O arquivo de imagem de entrada (input.png) colocado na pasta do projeto.

Instale a biblioteca via NuGet:

dotnet add package Aspose.cad-Cloud

Faça o download do pacote mais recente na página de download. Após a instalação, você pode começar a codificar o fluxo de trabalho.

Construindo passo a passo: Busca reversa de imagem e correção de inclinação de imagem em .NET

A implementação está dividida em cinco etapas lógicas. Cada etapa mostra apenas o código relevante extraído do exemplo completo.

Etapa 1: Carregar a Imagem de Origem

Leia o arquivo PNG em um array de bytes e crie um fluxo de memória que a biblioteca possa consumir.

string inputImagePath = "input.png";
byte[] inputBytes = File.ReadAllBytes(inputImagePath);
using var inputStream = new MemoryStream(inputBytes);

Etapa 2: Configure a Aspose.CAD Cloud Library

Crie um objeto de configuração com sua chave de API e URL base, então instancie o ImageApi.

var config = new Configuration
{
    ApiKey = "YOUR_ASPOSE_CAD_CLOUD_API_KEY",
    BasePath = "https://api.aspose.cloud"
};
var imageApi = new ImageApi(config);

Para mais detalhes, consulte a referência da API.

Etapa 3: Desinclinar a Imagem Usando a Biblioteca

Crie um DeskewImageRequest com o fluxo de imagem e chame a operação de deskew.

var deskewRequest = new DeskewImageRequest
{
    ImageData = inputStream
    // Optional: Angle, BackgroundColor can be set here
};
byte[] deskewedBytes = await imageApi.PostImageDeskewAsync(deskewRequest);

Etapa 4: Salvar a Imagem Corrigida

Escreva o array de bytes retornado em um novo arquivo.

string deskewedImagePath = "deskewed.png";
File.WriteAllBytes(deskewedImagePath, deskewedBytes);
Console.WriteLine($"Deskewed image saved to {deskewedImagePath}");

Etapa 5: Executar pesquisa reversa de imagem via Bing Visual Search API

Crie um HttpClient, adicione o cabeçalho da chave de assinatura e envie a imagem original para o 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);

Com estas etapas, você tem um fluxo de trabalho completo de pesquisa reversa de imagens e correção de inclinação de imagens em C#.

Exemplo Completo de Funcionamento para Busca Reversa de Imagem e Automação de Correção de Inclinação de Imagem

O exemplo abaixo demonstra como combinar todas as partes em um único aplicativo de 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; }
    }
}

Nota: Este exemplo de código demonstra a funcionalidade principal. Antes de usá‑lo em seu projeto, certifique‑se de atualizar quaisquer caminhos de arquivo e valores de configuração para corresponder ao seu ambiente real, verifique se todas as dependências necessárias estão corretamente instaladas e teste minuciosamente em seu ambiente de desenvolvimento. Se encontrar algum problema, consulte a documentação oficial ou entre em contato com a equipe de suporte para obter assistência.

Executando as mesmas operações via API REST usando cURL

Se você preferir uma abordagem puramente REST, o mesmo fluxo de trabalho pode ser executado com comandos cURL.

1. Autenticar e obter um token de acesso

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. Carregue o PNG de origem e solicite a correção de inclinação

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. Chame o Bing Visual Search para pesquisa reversa de imagem

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"

Esses comandos executam as mesmas etapas mostradas no código C#, permitindo que você integre a funcionalidade em qualquer ambiente que possa executar scripts shell.

Para parâmetros adicionais e formatos de resposta, veja a documentação oficial da API.

Conclusão

Implementar pesquisa reversa de imagens e correção de inclinação de imagens em C# torna‑se simples com o Aspose.CAD Cloud SDK for .NET. A biblioteca lida com o pré‑processamento de imagens, enquanto o Bing Visual Search fornece recursos poderosos de busca reversa. Seguindo os passos acima, você pode criar um pipeline robusto de busca visual que corrige entradas inclinadas antes da consulta. Lembre‑se de adquirir uma licença válida para uso em produção; detalhes de preços estão disponíveis na página do produto e você pode obter uma licença temporária na página de licença temporária. Com o código e os exemplos cURL em mãos, você está pronto para integrar essa funcionalidade em suas aplicações.

Perguntas Frequentes

  • O que a pesquisa reversa de imagens e a correção de inclinação de imagens (Deskewing) realizam em uma aplicação C#?
    Ela permite corrigir automaticamente a orientação das imagens enviadas e, em seguida, encontrar itens visualmente semelhantes usando um serviço de pesquisa externo, melhorando a experiência do usuário e a precisão da pesquisa.

  • Posso usar a biblioteca com outros formatos de imagem além de PNG?
    Sim, a biblioteca suporta formatos raster comuns, como JPG e BMP. Basta alterar a extensão do arquivo no código.

  • Preciso hospedar algum serviço para executar este código?
    Não, o Aspose.CAD Cloud SDK for .NET é uma biblioteca baseada em nuvem, portanto todo o processamento ocorre nos servidores da Aspose. Você só precisa de conectividade com a internet e credenciais válidas.

  • Como posso lidar com grandes lotes de imagens de forma eficiente?
    Processar imagens de forma assíncrona, armazenar em cache os resultados corrigidos e reutilizar o mesmo token de acesso para várias chamadas de API. Isso reduz a latência e a sobrecarga da API.

Leia Mais