
Мы рады сообщить вам о недавно введенных функциях в Aspose.Imaging Cloud API. Теперь он поддерживает источник изображений, основанный на веб-сайте, для обратного поиска изображений. Функция исправления наклона изображения также делает API лучшим среди аналогов. Мы постоянно работаем и совершенствуемся, чтобы предложить вам лучшие решения.
Обратный поиск изображений полезен для поиска дубликатов или схожих изображений. Он также может помочь в мониторинге непристойного или графического контента. Вы также можете противодействовать нарушениям авторских прав или подделке товарных знаков, ища цифровые подписанные изображения с помощью обратного поиска. Более того, коррекция наклона изображений - еще одна функция, которая добавляет ценность к Aspose.Imaging Cloud API. Она также имеет значение для отсканированных PDF-документов, в которых часто существуют наклоненные изображения. Такие PDF-документы часто преобразуются в поисковые PDF-документы, где результаты могут быть улучшены за счет коррекции наклона изображений. Давайте разберем эти функции ниже.
Обратный поиск изображений с использованием Aspose.Imaging Cloud SDK для Python
Несколько SDK доступны для связи с Aspose.Imaging Cloud API. SDK обрабатывают все мелкие детали, чтобы вы могли без проблем продолжить выполнение ваших требований. SDK включают .NET, Java, Python, PHP, Ruby, Android и Node.js. Здесь мы будем работать с примером на Python:
Для начала вам нужно будет бесплатное sign up на Aspose.Cloud. Установите Python 2.7 или более позднюю версию, а затем добавьте следующий PyPi package в ваш requirements.txt.
aspose-imaging-cloud>=20.1
Теперь импортируйте зависимости следующим образом:
import aspose-imaging-cloud
Теперь вы можете использовать приведенный ниже код на Python для вызова API и тестирования функции:
def search_image_from_web_source(self):
"""Finds the similar images from the URL source"""
print('Finds similar images from URL:')
similarity_threshold = 30.0
max_count = 3
folder = ImagingAiBase.CLOUD_PATH # Folder with image to process
storage = None # We are using default Cloud Storage
# Добавьте изображения с веб-сайта в контекст поиска.
image_source_url = urllib.quote_plus('https://www.f1news.ru/interview/hamilton/140909.shtml')
self._imaging_api.create_web_site_image_features(
requests.CreateWebSiteImageFeaturesRequest(self._search_context_id, image_source_url, folder, storage))
self._wait_idle(self._search_context_id)
# Скачайте изображение с веб-сайта
image_data = req.get('https://cdn.f1ne.ws/userfiles/hamilton/140909.jpg')
path = os.path.abspath(os.path.join(ImagingAiBase.OUTPUT_FOLDER, 'WebSearchSample.jpg'))
with open(path, "wb") as f:
f.write(image_data.content)
# Измените размер загруженного изображения, чтобы продемонстрировать возможности поисковой системы.
resized_image = self._imaging_api.create_resized_image(requests.CreateResizedImageRequest(
path, 600, 400, "jpg", storage=storage))
# Загрузить изображение в облако
image_name = 'ReverseSearch.jpg'
self._imaging_api.upload_file(requests.UploadFileRequest(ImagingAiBase.CLOUD_PATH + "/" + image_name,
resized_image, storage))
# Найдите похожие изображения в контексте поиска
find_response = self._imaging_api.find_similar_images(
requests.FindSimilarImagesRequest(self._search_context_id, similarity_threshold, max_count,
image_id=ImagingAiBase.CLOUD_PATH + "/" + image_name,
folder=folder, storage=storage))
print('Similar images found: ' + str(len(find_response.results)))
print('Similar image id: ' + find_response.results[0].image_id)
print('Similarity: ' + str(find_response.results[0].similarity))
Веб-сайтовый источник изображений для обратного поиска изображений хорошо объяснен в этом примере. Он включает дополнительный шаг изменения размера изображения, чтобы продемонстрировать эффективность API. Размеры изображения могут отличаться, но API будет обеспечивать надежные и точные результаты. Ниже приведен скриншот вывода:

Как вы можете заметить, количество похожих изображений, URL и процент схожести отображаются параметрами в ответе API.
Изменение угла наклона изображения с использованием Aspose.Imaging Cloud SDK для .NET
Изображения содержат много информации, и обработка изображений в настоящее время имеет большое значение. Очень распространённый случай использования – это наклонённые изображения в отсканированных PDF-документах или часто в изображениях с камер мобильных телефонов. Aspose.Imaging Cloud API теперь включает функцию выпрямления изображений. Вы можете выпрямить изображения в форматах BMP, GIF, JPEG, JPEG2000, PSD, TIFF, WEBP и PNG. Рассмотрим пример на .NET для выпрямления TIFF-изображения.
using System;
using System.IO;
using Aspose.Imaging.Cloud.Sdk.Api;
using Aspose.Imaging.Cloud.Sdk.Model.Requests;
namespace AsposeImagingCloudSdkExamples
{
/// <summary>
/// Пример выпрямления изображения.
/// </summary>
/// <seealso cref=\"AsposeImagingCloudSDKExamples.ImagingBase\" />
class DeskewImage : ImagingBase
{
/// <summary>
/// Инициализирует новый экземпляр класса <see cref=\"DeskewImage\"/>.
/// </summary>
/// <param name=\"imagingApi\">Имaging API.</param>
public DeskewImage(ImagingApi imagingApi) : base(imagingApi)
{
PrintHeader("Deskew image example:");
}
/// <summary>
/// Получает имя файла с изображением примера.
/// </summary>
/// <value>
/// Название файла примера изображения.
/// </value>
/// <remarks>
/// Форматы ввода могут быть одним из следующих:
///BMP, GIF, JPEG, JPEG2000, PSD, TIFF, WEBP, PNG
/// </remarks>
protected override string SampleImageFileName => "Sample_05_Scan1_SkewToLeft.tif";
private const string SaveImageFormat = "tif";
/// <summary>
/// Поворачивает изображение из облачного хранилища.
/// </summary>
public void DeskewImageFromStorage()
{
Console.WriteLine("Deskew the image from cloud storage");
UploadSampleImageToCloud();
bool resizeProportionally = true;
string bkColor = "white";
string folder = CloudPath; // Input file is saved at the Examples folder in the storage
string storage = null; // We are using default Cloud Storage
var request = new DeskewImageRequest(SampleImageFileName, resizeProportionally, bkColor, folder, storage);
Console.WriteLine($"Call DeskewImage with params: resizeProportionally:{resizeProportionally}, bkColor:{bkColor}");
using (Stream updatedImage = this.ImagingApi.DeskewImage(request))
{
SaveUpdatedSampleImageToOutput(updatedImage, false, SaveImageFormat);
}
Console.WriteLine();
}
/// <summary>
/// Исправьте наклон существующего изображения и загрузите обновленное изображение в облачное хранилище.
/// </summary>
public void DeskewImageAndUploadToStorage()
{
Console.WriteLine("Deskews the image and upload to cloud storage");
UploadSampleImageToCloud();
bool resizeProportionally = true;
string bkColor = null;
string folder = CloudPath; // Input file is saved at the Examples folder in the storage
string storage = null; // We are using default Cloud Storage
var request = new DeskewImageRequest(SampleImageFileName, resizeProportionally, bkColor, folder, storage);
Console.WriteLine($"Call DeskewImage with params: resizeProportionally:{resizeProportionally}, bkColor:{bkColor}");
using (Stream updatedImage = this.ImagingApi.DeskewImage(request))
{
UploadImageToCloud(GetModifiedSampleImageFileName(false, SaveImageFormat), updatedImage);
}
Console.WriteLine();
}
/// <summary>
/// Выравнивает изображение. Данные изображения передаются в потоке запроса.
/// </summary>
public void CreateDeskewedImageFromRequestBody()
{
Console.WriteLine("Deskews the image from request body");
using (FileStream inputImageStream = File.OpenRead(Path.Combine(ExampleImagesFolder, SampleImageFileName)))
{
bool resizeProportionally = true;
string bkColor = "white";
string storage = null; // We are using default Cloud Storage
string outPath = null; // Path to updated file (if this is empty, response contains streamed image)
var request = new CreateDeskewedImageRequest(inputImageStream, resizeProportionally, bkColor, outPath, storage);
Console.WriteLine($"Call DeskewImage with params: resizeProportionally:{resizeProportionally}, bkColor:{bkColor}");
using (Stream updatedImage = this.ImagingApi.CreateDeskewedImage(request))
{
SaveUpdatedSampleImageToOutput(updatedImage, true, SaveImageFormat);
}
}
Console.WriteLine();
}
}
}
Этот пример загружает образец изображения в Cloud Storage, исправляет искажения и загружает обновленное изображение в Cloud Storage. Ниже представлены скриншоты входных и выходных TIFF изображений.
Входное изображение TIFF

Вывод TIFF изображения (выровненного)

Aspose.Imaging Cloud SDK для Ruby
Еще одним важным дополнением в линейке SDK является то, что мы опубликовали Aspose.Imaging Cloud SDK для Ruby. Он позволяет интегрировать надежные функции обработки изображений в ваши Ruby-приложения.
Мы призываем вас попробовать эти эффективные функции API и поделиться с нами своим опытом. Дайте нам знать, если у вас есть какие-либо предложения или вопросы. Мы с нетерпением ждем вашего ответа через Free Support Forums.