Bild verzerren

Entzerren Sie Bilder oder PDFs mithilfe von Java Cloud SDK

Bei einer großen Anzahl von Rasterbildern, die wir für geschäftliche und private Zwecke erhalten, handelt es sich entweder um gescannte Bilder mit einem digitalen Scanner oder um Bilder von einem Mobilgerät. Daher ist die Wahrscheinlichkeit groß, dass der Text in einem Bild nicht richtig ausgerichtet ist und entweder horizontal oder vertikal über den Seitenrand läuft. Vereinfacht gesagt sind die gescannten Bilder auf dem Scanner oft schief (das Papier wurde bewegt/gedreht). Um solche Probleme zu lösen, entscheiden wir uns nun für eine Technik namens Entzerrung, bei der es sich um einen Prozess handelt, bei dem die Verzerrung entfernt wird, indem ein Bild um den gleichen Betrag wie seine Verzerrung, jedoch in die entgegengesetzte Richtung, gedreht wird. Die Deskew-Funktion ist äußerst nützlich bei der automatisierten Bildverarbeitung, wenn die Bilder von einem Scanner stammen.

In diesem Artikel befassen wir uns nun mit den Details zum Entzerren von Bildern mithilfe des Java Cloud SDK. Die Entzerrungsfunktion arbeitet also in zwei Schritten, dh sie erkennt den Schräglagenwinkel des Bildes und dreht dann das Bild, um die Schräglage zu korrigieren. Wir können diesen Vorgang auf empfangene Faxe anwenden und anhand der Informationen (Text) im Bild den Drehwinkel und nicht die Ränder des Papiers berechnen und die Anforderung erfüllen. Dennoch verstehen wir, dass die Bildkorrektur bei 1-Bit-, 8-Bit- und 24-Bit-Farbbildern durchgeführt werden kann.

Deskew-Bild-API

Zur Unterstützung von Bildern verfügen wir über eine REST-basierte API, die die Möglichkeit bietet, Bilddateien in der Cloud zu bearbeiten. Für Java-Anwendungen haben wir nun speziell das Aspose.Imaging Cloud SDK für Java entwickelt, mit dem Sie Bildverarbeitungsfunktionen über Java-Code implementieren können. Um nun Bilder mithilfe des Java Cloud SDK zu entzerren, besteht der erste Schritt darin, die Referenz im Java-Projekt hinzuzufügen, indem die folgenden Informationen in pom.xml (Maven-Build-Typ-Projekt) eingefügt werden.

<repositories> 
    <repository>
        <id>aspose-cloud</id>
        <name>artifact.aspose-cloud-releases</name>
        <url>https://artifact.aspose.cloud/repo</url>
    </repository>   
</repositories>

<dependencies>
    <dependency>
        <groupId>com.aspose</groupId>
        <artifactId>aspose-imaging-cloud</artifactId>
        <version>22.4</version>
    </dependency>
</dependencies>

Der nächste Schritt besteht darin, die Kundenanmeldeinformationen von Cloud Dashboard zu erhalten. Wenn Sie kein Konto über Aspose Cloud Dashboard haben, erstellen Sie bitte ein kostenloses Konto mit einer gültigen E-Mail-Adresse. Melden Sie sich nun mit dem neu erstellten Konto an und suchen/erstellen Sie die Client-ID und das Client-Geheimnis im Aspose Cloud Dashboard.

Deskew Image Online mit Java

Sehen wir uns die Details zum Entzerren von Bildern mithilfe eines Java-Code-Snippets an. In diesem Beispiel laden wir ein TIFF-Bild vom lokalen Laufwerk und wenden die Korrekturkorrektur für Fotos an. Die resultierende Datei wird dann im Cloud-Speicher gespeichert.

  • Erstellen Sie zunächst ein ImagingApi-Objekt basierend auf personalisierten Kundenanmeldeinformationen
  • Zweitens erstellen Sie eine boolesche Variable, die angibt, dass die Bildgröße proportional geändert werden soll
  • Lesen Sie nun den Inhalt des Quell-TIFF mit der Methode readAllBytes(…) und übergeben Sie ihn an das Array byte[].
  • Der nächste Schritt besteht darin, eine Instanz von CreateDeskewedImageRequest zu erstellen, die ein Byte-Array, einen optionalen Parameter für die Hintergrundfarbe und den Namen des resultierenden Schräglagenfotos erfordert
  • Rufen Sie abschließend die Methode createDeskewedImage(…) auf, um das Bild zu entzerren. Das resultierende TIFF wird im Cloud-Speicher gespeichert
// Holen Sie sich ClientID und ClientSecret von https://dashboard.aspose.cloud/
String clientId = "7ef10407-c1b7-43bd-9603-5ea9c6db83cd";
String clientSecret = "ba7cc4dc0c0478d7b508dd8ffa029845";

// Bildobjekt erstellen
ImagingApi imageApi = new ImagingApi(clientSecret, clientId);

// Legen Sie die Variable fest, um die Größe des entzerrten Bilds proportional zu ändern
boolean resizeProportionally = true;
			
// Informationen zur Hintergrundfarbe
String bkColor = "white";

// Datei vom lokalen Laufwerk laden
File f = new File("DeskewSampleImage.tiff");

// Lesen Sie den Inhalt des TIFF-Bildes in ein Byte-Array
byte[] inputStream = Files.readAllBytes(f.toPath());
					    
// Erstellen Sie ein Objekt, um Bildausrichtungseigenschaften zu definieren
CreateDeskewedImageRequest request = new CreateDeskewedImageRequest(inputStream,resizeProportionally,bkColor,"Resultant.tiff",null);

// Entzerren Sie Fotos und speichern Sie die Ausgabe im Cloud-Speicher
imageApi.createDeskewedImage(request);

Wenn Sie nun das resultierende TIFF auf einem lokalen Laufwerk/Netzwerklaufwerk speichern möchten, versuchen Sie es bitte mit dem folgenden Codeausschnitt.

// Holen Sie sich ClientID und ClientSecret von https://dashboard.aspose.cloud/
String clientId = "7ef10407-c1b7-43bd-9603-5ea9c6db83cd";
String clientSecret = "ba7cc4dc0c0478d7b508dd8ffa029845";

// Bildobjekt erstellen
ImagingApi imageApi = new ImagingApi(clientSecret, clientId);

// Legen Sie die Variable fest, um die Größe des entzerrten Bilds proportional zu ändern
boolean resizeProportionally = true;
			
// Informationen zur Hintergrundfarbe
String bkColor = "white";

// Datei vom lokalen Laufwerk laden
File f = new File("DeskewSampleImage.tif");

// Lesen Sie den Inhalt des TIFF-Bildes in ein Byte-Array
byte[] inputStream = Files.readAllBytes(f.toPath());
					    
// Erstellen Sie ein Objekt, um Bildausrichtungseigenschaften zu definieren
CreateDeskewedImageRequest request = new CreateDeskewedImageRequest(inputStream,resizeProportionally,bkColor,null,null);

// Entzerren Sie das Foto und geben Sie die Ausgabe als Stream-Objekt zurück
byte[] updatedImage = imageApi.createDeskewedImage(request);

// Pfad zum Speichern des aktualisierten TIFF-Bildes
Path path = Paths.get("/Users/nayyer/Documents/", "DeskewSampleImage_out.tif").toAbsolutePath();

// Rufen Sie die API auf, um das Foto auszurichten und auf dem lokalen Laufwerk zu speichern
Files.write(path, updatedImage);
Bild verzerren

Vorschau des Fotos verzerren

Das im obigen Beispiel verwendete TIFF-Beispielbild kann von DeskewSampleImage.tif heruntergeladen werden.

Entzerren Sie PDFs mithilfe von cURL-Befehlen

Wir erhalten möglicherweise eine PDF-Datei mit entzerrten Bildern. Eine schnelle Lösung besteht daher darin, Bilder aus der PDF-Datei zu extrahieren und die Bilder dann entzerrt zu machen. Um diese Anforderung zu erfüllen, werden wir hier zwei Cloud-APIs verwenden, nämlich Aspose.PDF Cloud zum Extrahieren von Bildern aus PDF-Dateien und Aspose.Imaging Cloud zum Entzerren von Fotos. Bevor wir jedoch einen Vorgang ausführen, müssen wir zunächst mit dem folgenden Befehl ein JWT-Zugriffstoken (basierend auf den Client-Anmeldeinformationen) generieren.

curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=bb959721-5780-4be6-be35-ff5c3a6aa4a2&client_secret=4d84d5f6584160cbd91dba1fe145db14" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"

Sobald wir das JWT-Token haben, müssen wir PDF-Bilder mit der GrayscaleImage-API von Aspose.PDF Cloud extrahieren. Die Bilder werden im TIFF-Format extrahiert und im Cloud-Speicher gespeichert.

curl -v -X PUT "https://api.aspose.cloud/v3.0/pdf/Resultant.pdf/pages/1/images/extract/tiff?width=0&height=0" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>"

Nachdem die Bilder nun aus der PDF-Datei im TIFF-Format extrahiert wurden, müssen wir nun die DeskewImage-API von Aspose.Imaging Cloud aufrufen, um das Bild zu entzerren. Da die resultierende Datei im Antwortstream zurückgegeben wird, können wir sie auf unserem lokalen Laufwerk speichern.

curl -v -X GET "https://api.aspose.cloud/v3.0/imaging/image1.tiff/deskew?resizeProportionally=true&bkColor=White" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>" \
-o Deskewed.tiff

Abschluss

Mittlerweile haben wir einige erstaunliche und einfache Schritte zum Entzerren von Bildern und PDFs mithilfe des Java Cloud SDK gelernt. Jetzt können wir unsere Anforderungen entweder mithilfe eines Java-Code-Snippets oder mithilfe der cURL-Befehle erfüllen. Gleichzeitig empfehlen wir Ihnen dringend, die Produktdokumentation zu erkunden, um mehr über andere spannende Funktionen der API zu erfahren.

Bitte beachten Sie, dass alle unsere Cloud SDKs unter MIT-Lizenz entwickelt werden, sodass der vollständige Quellcode von GitHub heruntergeladen werden kann. Sollten Sie bei der Verwendung der API auf Probleme stoßen, können Sie sich über das kostenlose Produkt-Support-Forum an uns wenden, um eine schnelle Lösung zu finden.

In Verbindung stehende Artikel

Bitte besuchen Sie die folgenden Links, um mehr darüber zu erfahren: