So extrahieren Sie ein TIFF-Bild

So extrahieren Sie Bilder aus TIFF-Dateien

TIFF von TIF ist eine Abkürzung für Tag Image File Format und gehört zu den beliebten Rastergrafikbildern, die von Grafikern, der Verlagsbranche und Fotografen häufig verwendet werden. Das TIFF unterscheidet sich von JPEG, GIF und PNG dadurch, dass es ein „unkomprimiertes“ Format ist und viel mehr Bilddaten speichern kann als ihre JPEG-Gegenstücke. Eines der herausragenden Merkmale von TIFF-Dateien ist die Möglichkeit, mehrere Bilder (jedes mit mehreren Kanälen) als aufeinanderfolgende Bilder in einem Zeitstapel oder Z-Stapel von Bildern zu speichern. In diesem Artikel werden wir die Details zum Extrahieren von Frames aus TIFF-Bildern mit mehreren Frames mithilfe des Java Cloud SDK untersuchen.

TIFF-Bildverarbeitungs-API

Wir haben eine Bildverarbeitungs-API erstellt, die die Möglichkeit bietet, Rasterdateien, Metadateien, Photoshop und andere unterstützte Formate zu bearbeiten, zu manipulieren und in eine Vielzahl von Dateiformaten umzuwandeln. Apropos TIFF-Bildbearbeitung: Die API ist durchaus in der Lage, TIFF-Bilder zu verarbeiten. Im Rahmen dieses Artikels werden wir also Aspose.Imaging Cloud SDK für Java verwenden, einen Wrapper für die REST-API. Der erste Schritt zur Nutzung seiner Funktionen besteht also darin, seine Referenz in ein Java-Projekt einzufü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>http://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 Anmeldeinformationen des Kunden 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.

So extrahieren Sie ein TIFF-Bild in Java

Sehen wir uns die Details zum Extrahieren von Bildern aus TIFF-Dateien mithilfe eines Java-Code-Snippets an. Bitte beachten Sie, dass Sie mit der API auch die Größe des extrahierten Rahmens ändern, zuschneiden und drehen und umdrehen können. Darüber hinaus können Sie mit einem der booleschen Parameter saveOtherFrames angeben, ob das Ergebnis alle anderen Frames oder nur einen bestimmten Frame umfassen soll.

  • Erstellen Sie zunächst ein ImagingApi-Objekt basierend auf personalisierten Kundenanmeldeinformationen
  • Zweitens lesen Sie den Inhalt des ersten TIFF-Bildes mit der Methode readAllBytes(…) und übergeben Sie ihn an das Array byte[].
  • Drittens erstellen wir eine Instanz der UploadFileRequest-Klasse, in der wir den Namen von TIFF über Cloud-Speicher angeben
  • Laden Sie nun das erste TIFF-Bild mit der Methode uploadFile(…) in den Cloud-Speicher hoch
  • Der nächste Schritt besteht darin, den TIFF-Frame-Index, die Höhe und Breite des extrahierten Frames sowie den Ursprung der Extraktion anzugeben und anzugeben, ob der extrahierte Frame in einem bestimmten Winkel angezeigt werden soll
  • Erstellen Sie nun ein Objekt von GetImageFrameRequest, in dem wir das Eingabe-TIFF-Bild und die oben definierten Eigenschaften angeben
  • Rufen Sie die Methode getImageFrame(…) von ImagingAPI auf, um einen TIFF-Frame abzurufen
  • Speichern Sie den extrahierten Frame mithilfe des FileOutputStream-Objekts auf dem lokalen Laufwerk
// 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);

// Laden Sie das erste TIFF-Bild vom lokalen System
File file1 = new File("DeskewSampleImage.tif");
byte[] imageStream = Files.readAllBytes(file1.toPath());
			
// Datei-Upload-Anforderungsobjekt erstellen
UploadFileRequest uploadRequest = new UploadFileRequest("input.tiff",imageStream,null);
// Laden Sie das erste TIFF-Bild in den Cloud-Speicher hoch
imageApi.uploadFile(uploadRequest);

Integer frameId = 0; // Frame number inside TIFF
// Neue Breite und Höhe des extrahierten Rahmens
Integer newWidth = 1000;
Integer newHeight = 1400;

// Ursprung, um die Frame-Extraktion zu starten
Integer x = 10;
Integer y = 10;

// Rechteckiger Bereich zum Extrahieren des Rahmens
Integer rectWidth = 900;
Integer rectHeight = 800;

// Geben Sie den Drehwinkel für den extrahierten TIFF-Rahmen an
String rotateFlipMethod = "Rotate90FlipY";
// Ergebnis, um nur den angegebenen Frame einzuschließen, keine anderen Frames
Boolean saveOtherFrames = false;

// Erstellen Sie ein Anforderungsobjekt, um TIFF-Frames basierend auf angegebenen Details zu extrahieren
GetImageFrameRequest getImageFrameRequest = new GetImageFrameRequest("input.tiff", frameId, newWidth, newHeight,
                    x, y, rectWidth, rectHeight, null, saveOtherFrames, null, null);

// Der extrahierte Frame wird im Antwortstream zurückgegeben
byte[] updatedImage = imageApi.getImageFrame(getImageFrameRequest);

// Speichern Sie den extrahierten TIFF-Frame im lokalen Speicher
FileOutputStream fos = new FileOutputStream("/Users/s4/Documents/" + "Extracted-TIFF.tiff");
fos.write(updatedImage);
fos.close();
TIFF-Frame extrahieren

Holen Sie sich die Vorschau der TIFF-Frames

Die im obigen Beispiel verwendeten TIFF-Beispielbilder können von DeskewSampleImage.tif heruntergeladen werden.

TIFF-Bildverarbeitung mit cURL-Befehlen

Eine weitere bequeme Möglichkeit, auf REST-APIs zuzugreifen, sind cURL-Befehle. Da Aspose.Imaging Cloud auf der REST-Architektur basiert, können wir auch TIFF-Bildrahmen mithilfe von cURL-Befehlen extrahieren. Voraussetzung für diese Aktivität ist nun die Generierung eines JWT-Zugriffstokens (basierend auf den Client-Anmeldeinformationen) mit dem folgenden Befehl.

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"

Nach der JWT-Token-Generierung müssen wir den folgenden Befehl ausführen, um den TIFF-Bildrahmen zu extrahieren.

curl -v -X GET "https://api.aspose.cloud/v3.0/imaging/first.tiff/frames/0?newWidth=1000&newHeight=1200&x=10&y=10&rectWidth=800&rectHeight=800&saveOtherFrames=false" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>" \
-o ExtractedFrame.tiff

Abschluss

An diesem Punkt haben wir alle notwendigen Details zum Extrahieren von Bildern aus TIFF-Dateien erfahren. Wir haben die Möglichkeit untersucht, TIFF-Frames mithilfe eines Java-Code-Snippets oder über cURL-Befehle zu extrahieren. Ein weiterer Ansatz zum Testen der vielversprechenden Funktionen der API ist über SwaggerUI und falls Sie den Quellcode des SDK ändern möchten, können Sie ihn von GitHub herunterladen (alle unsere Cloud SDKs werden unter MIT entwickelt). Lizenz).

Nichtsdestotrotz ist die Produktdokumentation eine erstaunliche Informationsquelle, um mehr über andere spannende Funktionen der API zu erfahren. Falls Sie bei der Verwendung der API auf Probleme stoßen, können Sie sich für eine schnelle Lösung kostenlos an uns wenden Produkt-Support-Forum.

In Verbindung stehende Artikel

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