Обратный поиск изображений и исправление наклоненных картинок «на лету» — распространённая задача для разработчиков, создающих функции визуального поиска. Aspose.CAD Cloud SDK for .NET предоставляет мощную библиотеку, упрощающую как обратный поиск изображений, так и выравнивание изображений в C#. В этом руководстве вы увидите, как выровнять PNG, вызвать Bing Visual Search для обратного поиска и интегрировать весь процесс с помощью лаконичного кода и примеров cURL.
Перед началом: предварительные требования и установка
Для выполнения этого руководства вам понадобится:
- .NET 6.0 или новее и IDE, например Visual Studio 2022.
- Учётная запись Aspose Cloud с API‑ключом и клиентским секретом.
- Доступ к Bing Visual Search API (требуется ключ подписки).
- Файл входного изображения (
input.png), размещённый в папке проекта.
Установите библиотеку через NuGet:
dotnet add package Aspose.cad-Cloud
Скачайте последнюю версию пакета со страницы загрузки. После установки вы можете начать писать код рабочего процесса.
Пошаговое построение: обратный поиск изображений и исправление наклона изображений в .NET
Реализация разбита на пять логических шагов. Каждый шаг показывает только соответствующий код, извлечённый из полного примера.
Шаг 1: Загрузите исходное изображение
Прочитайте PNG‑файл в массив байтов и создайте поток памяти, который может использовать библиотека.
string inputImagePath = "input.png";
byte[] inputBytes = File.ReadAllBytes(inputImagePath);
using var inputStream = new MemoryStream(inputBytes);
Шаг 2: Настройте библиотеку Aspose.CAD Cloud
Создайте объект конфигурации с вашим API‑ключом и базовым URL, затем создайте экземпляр ImageApi.
var config = new Configuration
{
ApiKey = "YOUR_ASPOSE_CAD_CLOUD_API_KEY",
BasePath = "https://api.aspose.cloud"
};
var imageApi = new ImageApi(config);
Для получения более подробной информации см. Справка API.
Шаг 3: Выравнивание изображения с помощью библиотеки
Создайте DeskewImageRequest с потоком изображения и вызовите операцию deskew.
var deskewRequest = new DeskewImageRequest
{
ImageData = inputStream
// Optional: Angle, BackgroundColor can be set here
};
byte[] deskewedBytes = await imageApi.PostImageDeskewAsync(deskewRequest);
Шаг 4: Сохранить выпрямленное изображение
Запишите возвращаемый массив байтов в новый файл.
string deskewedImagePath = "deskewed.png";
File.WriteAllBytes(deskewedImagePath, deskewedBytes);
Console.WriteLine($"Deskewed image saved to {deskewedImagePath}");
Шаг 5: Выполнить обратный поиск изображения с помощью Bing Visual Search API
Создайте HttpClient, добавьте заголовок с ключом подписки и отправьте оригинальное изображение в 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);
С помощью этих шагов у вас будет полностью готовый процесс обратного поиска изображений и исправления наклона изображений на C#.
Полный рабочий пример автоматизации обратного поиска изображений и исправления наклона изображений
Пример ниже демонстрирует, как объединить все части в одно консольное приложение.
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; }
}
}
Примечание: Этот пример кода демонстрирует базовую функциональность. Прежде чем использовать его в вашем проекте, убедитесь, что вы обновили все пути к файлам и значения конфигурации в соответствии с вашей реальной средой, проверьте, что все необходимые зависимости правильно установлены, и тщательно протестируйте в вашей среде разработки. Если вы столкнётесь с какими‑либо проблемами, пожалуйста, обратитесь к официальной документации или свяжитесь с командой поддержки для получения помощи.
Выполнение тех же операций через REST API с использованием cURL
Если вы предпочитаете чистый REST‑подход, тот же рабочий процесс можно выполнить с помощью команд cURL.
1. Аутентифицируйтесь и получите токен доступа
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. Загрузите исходный PNG и запросите исправление наклона
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. Вызов Bing Visual Search для обратного поиска изображения
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"
Эти команды выполняют те же самые шаги, что показаны в коде C#, позволяя интегрировать функциональность в любую среду, способную выполнять shell‑скрипты.
Для получения дополнительной информации о параметрах и форматах ответа см. официальную документацию API.
Заключение
Реализация обратного поиска изображений и исправления наклона изображений в C# становится простой с помощью Aspose.CAD Cloud SDK for .NET. Библиотека обрабатывает предварительную подготовку изображений, а Bing Visual Search предоставляет мощные возможности обратного поиска. Следуя приведённым выше шагам, вы можете построить надёжный конвейер визуального поиска, который исправляет наклонённые входные данные перед запросом. Не забудьте получить действующую лицензию для использования в продакшене; детали ценообразования доступны на странице продукта, а временную лицензию можно получить со страницы временной лицензии. Имея код и примеры cURL под рукой, вы готовы интегрировать эту функциональность в свои приложения.
Часто задаваемые вопросы
-
Что достигает обратный поиск изображений и исправление наклона изображения в приложении C#?
Это позволяет автоматически корректировать ориентацию загруженных изображений, а затем находить визуально похожие элементы с помощью внешнего сервиса поиска, улучшая пользовательский опыт и точность поиска. -
Могу ли я использовать библиотеку с другими форматами изображений, кроме PNG?
Да, библиотека поддерживает распространённые растровые форматы, такие как JPG и BMP. Просто измените расширение файла в коде. -
Нужно ли мне размещать какие‑либо сервисы для выполнения этого кода?
Нет, Aspose.CAD Cloud SDK for .NET — это облачная библиотека, поэтому вся обработка происходит на серверах Aspose. Вам требуется только подключение к интернету и действительные учетные данные. -
Как можно эффективно обрабатывать большие партии изображений?
Обрабатывайте изображения асинхронно, кэшируйте результаты исправления наклона и повторно используйте один и тот же токен доступа для нескольких вызовов API. Это снижает задержку и нагрузку на API.