
Wir freuen uns, Ihnen die neu eingeführten Funktionen in Aspose.Imaging Cloud API mitzuteilen. Jetzt unterstützt es bildbasierte Quellen für die umgekehrte Bildsuche. Die Funktion zur Korrektur der Bildschiefstellung macht die API ebenfalls unübertroffen. Wir arbeiten kontinuierlich daran, uns zu verbessern und Ihnen die bestmöglichen Lösungen anzubieten.
Reverse bildsuche ist nützlich, um doppelte oder ähnliche Bilder zu finden. Es kann auch helfen, obszöne oder grafische Inhalte zu überwachen. Sie können auch Urheberrechtsverletzungen oder Markenfälschungen entgegenwirken, indem Sie digital signierte Bilder mit der umgekehrten Suche durchsuchen. Darüber hinaus ist das Entzerren von Bildern eine weitere Funktion, die dem Aspose.Imaging Cloud API Wert verleiht. Es ist auch relevant für gescannte PDF Dokumente, in denen oft schiefes Bildmaterial vorhanden ist. Solche PDF Dokumente werden häufig in durchsuchbare PDF Dokumente umgewandelt, in denen die Ergebnisse durch das Entzerren der Bilder verbessert werden können. Lassen Sie uns diese Funktionen unten im Detail betrachten.
Reverse Image Search using Aspose.Imaging Cloud SDK für Python
Mehrere SDKs sind verfügbar, um mit der Aspose.Imaging Cloud API zu kommunizieren. Die SDKs kümmern sich um alle kleinen Details, damit Sie Ihre Anforderungen ohne Probleme umsetzen können. Die SDKs umfassen .NET, Java, Python, PHP, Ruby, Android und Node.js. Hier werden wir mit einem Python-Beispiel arbeiten:
Zunächst benötigen Sie eine kostenlose sign up bei Aspose.Cloud. Installieren Sie Python 2.7 oder später und fügen Sie dann das folgende PyPi package zu Ihrer requirements.txt hinzu.
aspose-imaging-cloud>=20.1
Jetzt importieren Sie die Abhängigkeiten wie folgt:
import aspose-imaging-cloud
Jetzt können Sie den folgenden Python-Code verwenden, um die APIs aufzurufen und die Funktion zu testen:
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
# Fügen Sie Bilder von der Website zum Suchkontext hinzu
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)
# Laden Sie das Bild von der Webseite herunter.
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)
# Die heruntergeladene Bildgröße anpassen, um die Fähigkeiten der Suchmaschine zu demonstrieren.
resized_image = self._imaging_api.create_resized_image(requests.CreateResizedImageRequest(
path, 600, 400, "jpg", storage=storage))
# Lade Bild in die Cloud hoch
image_name = 'ReverseSearch.jpg'
self._imaging_api.upload_file(requests.UploadFileRequest(ImagingAiBase.CLOUD_PATH + "/" + image_name,
resized_image, storage))
# Finde ähnliche Bilder im Suchkontext
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))
Die website-basierte Bildquelle für die umgekehrte Bildsuche wird in diesem Beispiel gut erläutert. Es enthält einen zusätzlichen Schritt zum Ändern der Bildgröße, um die Effizienz der API zu demonstrieren. Die Bildabmessungen können variieren, aber die API wird zuverlässige und genaue Ergebnisse liefern. Folgendes ist der Screenshot des Outputs:

Wie Sie feststellen können, wird die Anzahl ähnlicher Bilder, die URL und der Ähnlichkeitsprozentsatz durch die Parameter in der API-Antwort angezeigt.
Bildverzerrungskorrektur mit Aspose.Imaging Cloud SDK für .NET
Images enthalten eine Menge Informationen und die Bildverarbeitung hat in der heutigen Zeit an Bedeutung gewonnen. Ein sehr häufiger Anwendungsfall sind schiefen Bilder in gescannten PDF Dokumenten oder oft in den Bildern von Handy-Kameras. Die Aspose.Imaging Cloud API enthält jetzt die Funktion zur Begradigung der Bilder. Sie können die Bilder im BMP-, GIF-, JPEG-, JPEG2000-, PSD-, TIFF-, WEBP und PNG-Format begradigen. Lassen Sie uns ein .NET-Beispiel zur Begradigung eines TIFF bildes betrachten.
using System;
using System.IO;
using Aspose.Imaging.Cloud.Sdk.Api;
using Aspose.Imaging.Cloud.Sdk.Model.Requests;
namespace AsposeImagingCloudSdkExamples
{
/// <Zusammenfassung>
/// Beispiel zum Entzerren von Bildern.
/// </summary>
/// <seealso cref=\"AsposeImagingCloudSDKExamples.ImagingBase\" />
class DeskewImage : ImagingBase
{
/// <Zusammenfassung>
/// Initialisiert eine neue Instanz der <see cref=\"DeskewImage\"/> Klasse.
/// </summary>
/// <param name=\"imagingApi\">Die Imaging-API.</param>
public DeskewImage(ImagingApi imagingApi) : base(imagingApi)
{
PrintHeader("Deskew image example:");
}
/// <Zusammenfassung>
/// Holt den Namen der Beispielbilddatei.
/// </summary>
/// <value>
/// Der Name der Beispielbilddatei.
/// </value>
/// <remarks>
/// Eingabeformate können eines der folgenden sein:
/// BMP, GIF, JPEG, JPEG2000, PSD, TIFF, WEBP, PNG
/// </remarks>
protected override string SampleImageFileName => "Sample_05_Scan1_SkewToLeft.tif";
private const string SaveImageFormat = "tif";
/// <Zusammenfassung>
/// Stellt ein Bild aus einem Cloud-Speicher wieder her.
/// </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();
}
/// <Zusammenfassung>
/// Entzerren Sie ein vorhandenes Bild und laden Sie das aktualisierte Bild in einen Cloud-Speicher hoch.
/// </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();
}
/// <Zusammenfassung>
/// Stellt ein Bild aufrecht. Bilddaten werden in einem Anforderungsstrom übergeben.
/// </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();
}
}
}
Dieses Beispiel lädt ein Beispielbild in den Cloud Storage hoch, richtet es aus und lädt das aktualisierte Bild in den Cloud Storage hoch. Unten sind die Screenshots der Eingabe und Ausgabe-TIFF bilder.
Eingabebild TIFF

Ausgabe TIFF bild (Entzerrt)

Aspose.Imaging Cloud SDK für Ruby
Eine weitere wichtige Ergänzung in der SDK-Palette ist, dass wir Aspose.Imaging Cloud SDK for Ruby veröffentlicht haben. Es ermöglicht Ihnen, robuste Bildverarbeitungsfunktionen in Ihre Ruby-Anwendungen zu integrieren.
Wir ermutigen Sie, diese effizienten Funktionen der API auszuprobieren und Ihre Erfahrungen mit uns zu teilen. Lassen Sie uns wissen, ob Sie Vorschläge oder Fragen haben. Wir freuen uns darauf, von Ihnen über Free Support Forums zu hören.