
Nous sommes ravis de vous informer des nouvelles fonctionnalités introduites dans Aspose.Imaging Cloud API. Maintenant, il prend en charge la source d’image basée sur le site Web pour la recherche d’image inversée. La fonctionnalité de redressement d’image rend également l’API inégalée. Nous travaillons continuellement et améliorons pour vous offrir les meilleures solutions possibles.
La recherche d’image inversée est utile pour trouver des images dupliquées ou similaires. Elle peut également aider à surveiller le contenu obscène ou graphique. Vous pouvez également contrer les violations de droits d’auteur ou de contrefaçon de marques en recherchant des images signées numériquement avec la recherche inversée. De plus, le redressement d’image est une autre fonctionnalité qui ajoute de la valeur à l’API Aspose.Imaging Cloud. Elle est également pertinente pour les documents PDF scannés où des images déformées existent souvent. De tels documents PDF sont souvent convertis en documents PDF consultables où les résultats peuvent être améliorés par le redressement des images. Diséquons ces fonctionnalités ci-dessous.
Recherche d’image inversée utilisant Aspose.Imaging Cloud SDK pour Python
Plusieurs SDKs sont disponibles pour communiquer avec l’API Aspose.Imaging Cloud. Les SDKs s’occupent de tous les petits détails afin que vous puissiez avancer dans vos besoins sans tracas. Les SDKs incluent .NET, Java, Python, PHP, Ruby, Android, et Node.js. Ici, nous allons travailler avec un exemple en Python :
Tout d’abord, vous aurez besoin d’un sign up gratuit sur Aspose.Cloud. Installez Python 2.7 ou une version ultérieure puis ajoutez le PyPi package suivant à votre requirements.txt.
aspose-imaging-cloud>=20.1
Maintenant, importez les dépendances comme suit :
import aspose-imaging-cloud
Maintenant, vous pouvez utiliser le code Python ci-dessous pour appeler les API et tester la fonctionnalité :
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
# Ajoutez des images du site Web au contexte de recherche
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)
# Téléchargez l'image depuis le site web.
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)
# Redimensionner l'image téléchargée pour démontrer les capacités du moteur de recherche.
resized_image = self._imaging_api.create_resized_image(requests.CreateResizedImageRequest(
path, 600, 400, "jpg", storage=storage))
# Téléchargez l'image sur le cloud
image_name = 'ReverseSearch.jpg'
self._imaging_api.upload_file(requests.UploadFileRequest(ImagingAiBase.CLOUD_PATH + "/" + image_name,
resized_image, storage))
# Trouvez des images similaires dans le contexte de recherche
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))
La source d’image basée sur le site web pour la recherche d’image inversée est bien expliquée dans cet exemple. Elle comprend une étape supplémentaire de redimensionnement de l’image pour démontrer l’efficacité de l’API. Les dimensions de l’image peuvent différer, mais l’API produira des résultats fiables et précis. Voici la capture d’écran de la sortie :

Comme vous pouvez le constater, le nombre d’images similaires, l’URL et le pourcentage de similarité sont indiqués par les paramètres dans la réponse de l’API.
Image Deskewing using Aspose.Imaging Cloud SDK for .NET
Les images contiennent beaucoup d’informations et le traitement d’images a pris beaucoup d’importance ces jours-ci. Un cas d’utilisation très courant est celui des images inclinées dans les documents PDF numérisés ou souvent dans les images provenant des caméras de téléphones mobiles. L’API Aspose.Imaging Cloud inclut maintenant la fonctionnalité de redressement des images. Vous pouvez redresser les images au format BMP, GIF, JPEG, JPEG2000, PSD, TIFF, WEBP et PNG. Considérons un exemple en .NET pour redresser une image TIFF.
using System;
using System.IO;
using Aspose.Imaging.Cloud.Sdk.Api;
using Aspose.Imaging.Cloud.Sdk.Model.Requests;
namespace AsposeImagingCloudSdkExamples
{
/// <résumé>
/// Exemple de désalignement d'image.
/// </summary>
/// <seealso cref=\"AsposeImagingCloudSDKExamples.ImagingBase\" />
class DeskewImage : ImagingBase
{
/// <résumé>
/// Initialiser une nouvelle instance de la <see cref=\"DeskewImage\"/> classe.
/// </summary>
/// <param name=\"imagingApi\">L'API d'imagerie.</param>
public DeskewImage(ImagingApi imagingApi) : base(imagingApi)
{
PrintHeader("Deskew image example:");
}
/// <résumé>
/// Obtient le nom du fichier image d'exemple.
/// </summary>
/// <value>
/// Le nom du fichier d'image exemple.
/// </value>
/// <remarks>
/// Les formats d'entrée pourraient être l'un des suivants :
/// BMP, GIF, JPEG, JPEG2000, PSD, TIFF, WEBP, PNG
/// </remarks>
protected override string SampleImageFileName => "Sample_05_Scan1_SkewToLeft.tif";
private const string SaveImageFormat = "tif";
/// <résumé>
/// Deskews une image d'un stockage cloud.
/// </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();
}
/// <résumé>
/// Redressez une image existante et téléchargez l'image mise à jour dans un stockage cloud.
/// </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();
}
/// <résumé>
/// Deskews une image. Les données de l'image sont transmises dans un flux de requêtes.
/// </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();
}
}
}
Cet exemple télécharge une image d’exemple vers Cloud Storage, la redresse et télécharge l’image mise à jour vers Cloud Storage. Voici les captures d’écran des images TIFF d’entrée et de sortie.
Entrer une image TIFF

Sortie d’image TIFF (redressée)

Aspose.Imaging Cloud SDK pour Ruby
Une autre addition importante à la gamme des SDK est que nous avons publié Aspose.Imaging Cloud SDK for Ruby. Il vous permet d’intégrer des fonctionnalités de traitement d’images robustes dans vos applications Ruby.
Nous vous encourageons à essayer ces fonctionnalités efficaces de l’API et à partager vos expériences avec nous. Faites-nous savoir si vous avez des suggestions ou des questions. Nous attendons avec impatience de vos nouvelles via Free Support Forums.