
Estamos empolgados em informá-lo sobre os novos recursos introduzidos na API Aspose.Imaging Cloud. Agora, ela suporta fonte de imagem baseada na web para busca reversa de imagens. O recurso de correção de distorção de imagem também torna a API imbatível. Estamos continuamente trabalhando e melhorando para oferecer as melhores soluções possíveis.
A pesquisa reversa de imagens é útil para encontrar imagens duplicadas ou semelhantes. Ela também pode ajudar a monitorar conteúdo obsceno ou gráfico. Você também pode combater violações de direitos autorais ou falsificações de marcas registradas pesquisando imagens digitalmente assinadas com a busca reversa. Além disso, a correção de inclinação de imagem é outro recurso que agrega valor à API Aspose.Imaging Cloud. Ele também é relevante para documentos PDF digitalizados onde imagens inclinadas frequentemente existem. Esses documentos PDF são frequentemente convertidos em documentos PDF pesquisáveis onde os resultados podem ser melhorados corrigindo a inclinação das imagens. Vamos dissecar esses recursos abaixo.
Pesquisa Reversa de Imagem usando Aspose.Imaging Cloud SDK para Python
Vários SDKs estão disponíveis para se comunicar com a API Aspose.Imaging Cloud. Os SDKs cuidam de todos os pequenos detalhes para que você possa prosseguir com suas necessidades sem complicações. Os SDKs incluem .NET, Java, Python, PHP, Ruby, Android e Node.js. Aqui, estaremos trabalhando com um exemplo em Python:
Primeiramente, você precisaria de um sign up gratuito na Aspose.Cloud. Instale Python 2.7 ou posterior e adicione o seguinte PyPi package ao seu requirements.txt.
aspose-imaging-cloud>=20.1
Agora importe as dependências conforme abaixo:
import aspose-imaging-cloud
Agora, você pode usar o código Python abaixo para chamar as APIs e testar o recurso:
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
# Adicione imagens do site ao contexto de pesquisa
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)
# Baixe a imagem do site
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)
# Redimensionar imagem baixada para demonstrar as capacidades do mecanismo de busca
resized_image = self._imaging_api.create_resized_image(requests.CreateResizedImageRequest(
path, 600, 400, "jpg", storage=storage))
# Carregar imagem para a nuvem
image_name = 'ReverseSearch.jpg'
self._imaging_api.upload_file(requests.UploadFileRequest(ImagingAiBase.CLOUD_PATH + "/" + image_name,
resized_image, storage))
# Encontre imagens similares no contexto de busca
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))
A fonte de imagem baseada em site para busca reversa de imagem está bem elaborada neste exemplo. Ela inclui uma etapa adicional de redimensionamento da imagem para demonstrar a eficiência da API. As dimensões da imagem podem diferir, mas a API produzirá resultados confiáveis e precisos. A seguir está a captura de tela da saída:

Como você pode notar, o número de imagens semelhantes, a URL e a porcentagem de similaridade são mostrados pelos parâmetros na resposta da API.
Desenho de Imagem usando Aspose.Imaging Cloud SDK para .NET
As imagens contêm muitas informações e o processamento de imagens assumiu muita importância atualmente. Um caso de uso muito comum são imagens inclinadas em documentos PDF digitalizados ou frequentemente nas imagens de câmeras de telefones celulares. A API Aspose.Imaging Cloud agora inclui a funcionalidade de endireitar as imagens. Você pode endireitar as imagens nos formatos BMP, GIF, JPEG, JPEG2000, PSD, TIFF, WEBP e PNG. Vamos considerar um exemplo em .NET para endireitar uma imagem TIFF.
using System;
using System.IO;
using Aspose.Imaging.Cloud.Sdk.Api;
using Aspose.Imaging.Cloud.Sdk.Model.Requests;
namespace AsposeImagingCloudSdkExamples
{
/// <resumo>
/// Exemplo de correção de inclinação da imagem.
/// </summary>
/// <seealso cref=\"AsposeImagingCloudSDKExamples.ImagingBase\" />
class DeskewImage : ImagingBase
{
/// <resumo>
/// Inicializa uma nova instância da classe <see cref=\"DeskewImage\"/>.
/// </summary>
/// <param name=\"imagingApi\">A API de imagem.</param>
public DeskewImage(ImagingApi imagingApi) : base(imagingApi)
{
PrintHeader("Deskew image example:");
}
/// <resumo>
/// Obtém o nome do arquivo da imagem de exemplo.
/// </summary>
/// <value>
/// O nome do arquivo de imagem de exemplo.
/// </value>
/// <remarks>
/// Os formatos de entrada podem ser um dos seguintes:
//BMP, GIF, JPEG, JPEG2000, PSD, TIFF, WEBP, PNG
/// </remarks>
protected override string SampleImageFileName => "Sample_05_Scan1_SkewToLeft.tif";
private const string SaveImageFormat = "tif";
/// <resumo>
/// Deskews uma imagem de um armazenamento em nuvem.
/// </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();
}
/// <resumo>
/// Corrija a inclinação de uma imagem existente e faça o upload da imagem atualizada para um armazenamento em nuvem.
/// </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();
}
/// <resumo>
/// Deskews uma imagem. Os dados da imagem são passados em um fluxo de solicitação.
/// </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();
}
}
}
Este exemplo faz o upload de uma imagem de amostra para o Cloud Storage, corrige a inclinação e faz o upload da imagem atualizada para o Cloud Storage. Abaixo estão as capturas de tela das imagens TIFF de entrada e saída.
Entrada de Imagem TIFF

Saída de Imagem TIFF (Desviada)

Aspose.Imaging Cloud SDK para Ruby
Outra adição importante na linha de SDKs é que publicamos Aspose.Imaging Cloud SDK for Ruby. Ele permite que você integre recursos robustos de processamento de imagem em suas aplicações Ruby.
Nós o incentivamos a experimentar esses recursos eficientes da API e compartilhar suas experiências conosco. Fique à vontade para nos informar se você tem alguma sugestão ou dúvida. Estamos ansiosos para ouvir de você através dos Free Support Forums.