Bildgröße anpassen

Ändern Sie die Größe des TIFF-Bildes mit Java

Wir wissen, dass eines der herausragenden Merkmale von TIFF-Dateien die Fähigkeit ist, mehrere Bilder (jedes mit mehreren Kanälen) als aufeinanderfolgende Frames in einem Zeitstapel oder Z-Stapel von Bildern zu speichern. In diesem Artikel wird erklärt, wie Sie einen Rahmen aus einem TIFF-Bild extrahieren, seine Größe ändern und ihn separat im Speicher speichern. Der Größenänderungsvorgang erfordert neue Abmessungen (Breite und Höhe) für einen bestimmten TIFF-Rahmen.

Bild-API zur Größenänderung

Aspose.Imaging Cloud SDK for Java ist unsere REST-basierte Lösung, die die Möglichkeit bietet, Raster, Metadateien und Photoshop programmgesteuert zu bearbeiten, zu manipulieren und in eine Vielzahl von unterstützten Formaten umzuwandeln. Gleichzeitig bietet es auch die Möglichkeit, TIFF-Bilder zu manipulieren, wobei wir sogar an einzelnen TIFF-Frames arbeiten können. Um nun mit der SDK-Nutzung zu beginnen, müssen wir seine Referenz in unserem Java-Projekt hinzufügen, indem wir die folgenden Informationen in pom.xml (Maven-Build-Typ-Projekt) einfügen.

<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, Kundenanmeldedaten von Cloud Dashboard abzurufen. Wenn Sie kein Konto über Aspose Cloud Dashboard haben, erstellen Sie bitte ein kostenloses Konto über eine gültige E-Mail-Adresse. Melden Sie sich jetzt mit dem neu erstellten Konto an und suchen/erstellen Sie die Client-ID und das Client-Secret im Aspose Cloud Dashboard.

Ändern Sie die Bildgröße online in Java

In diesem Abschnitt werden wir die GetImageFrame-API verwenden, um unsere TIFF-Bildgrößenanpassung zu entwickeln. Diese API-Anfrage verwendet einen Bildnamen als Pfad in der URL, daher müssen wir das Bild zuerst in Cloud Storage hochladen. Nach dem Aktualisieren der Bildparameter gibt die API das aktualisierte Bild in der Antwort zurück. Sie haben auch die Möglichkeit, die Größe von Fotos in großen Mengen zu ändern, und Sie können mithilfe des Parameters saveOtherFrames angeben, ob wir die Größe nur eines bestimmten TIFF-Frames ändern müssen.

  • Erstellen Sie zunächst ein ImagingApi-Objekt basierend auf personalisierten Client-Anmeldeinformationen
  • Lesen Sie zweitens den Inhalt des ersten TIFF-Bildes mit der readAllBytes(…)-Methode und übergeben Sie ihn an das byte[]-Array
  • Erstellen Sie drittens eine Instanz der UploadFileRequest-Klasse, in der wir den Namen von TIFF over Cloud-Speicher angeben
  • Laden Sie nun das erste TIFF-Bild mit der Methode uploadFile(…) in den Cloud-Speicher hoch
  • Geben Sie den TIFF-Rahmenindex, die neue Höhe und Breite für den extrahierten Rahmen an und legen Sie fest, dass nur die Größe des angegebenen Rahmens geändert werden soll
  • Erstellen Sie nun ein Objekt von GetImageFrameRequest, in dem wir das eingegebene TIFF-Bild und die oben definierten Eigenschaften angeben
  • Rufen Sie die getImageFrame(…)-Methode von ImagingAPI auf, um den TIFF-Rahmen zu erhalten
  • Speichern Sie den extrahierten Frame mit dem FileOutputStream-Objekt 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";

// Imaging-Objekt erstellen
ImagingApi imageApi = new ImagingApi(clientSecret, clientId);

// Laden Sie das erste TIFF-Bild vom lokalen System
File file1 = new File("TiffSampleImage.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 = 400;
Integer newHeight = 600;

// Ergebnis, um nur den angegebenen Frame einzuschließen, keine anderen Frames
Boolean saveOtherFrames = false;

// Erstellen Sie ein Anforderungsobjekt zum Extrahieren von TIFF-Frames basierend auf angegebenen Details
GetImageFrameRequest getImageFrameRequest = new GetImageFrameRequest("input.tiff", frameId, newWidth, newHeight,
                    null, null, null, null, null, saveOtherFrames, null, null);

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

// Extrahierten TIFF-Frame im lokalen Speicher speichern
FileOutputStream fos = new FileOutputStream("/Users/nayyer/Documents/" + "Extracted-TIFF.tiff");
fos.write(updatedImage);
fos.close();
Größe des TIFF-Rahmens ändern

Größe der TIFF-Rahmenvorschau ändern

Die im obigen Beispiel verwendeten TIFF-Beispielbilder können von TiffSampleImage.tiff heruntergeladen werden.

Reduzieren Sie die Bildgröße mit cURL-Befehlen

Aufgrund der REST-Architektur der API kann auch mit cURL-Befehlen darauf zugegriffen werden. In diesem Abschnitt werden wir also die Details zum Reduzieren der Bildgröße oder zum Extrahieren von TIFF-Frames in bestimmten Dimensionen mit cURL-Befehlen besprechen. Der erste Schritt besteht nun darin, mit dem folgenden Befehl ein JWT-Zugriffstoken (basierend auf Client-Anmeldeinformationen) zu 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"

Nach der Generierung des JWT-Tokens müssen wir den folgenden Befehl ausführen, um die Größe des TIFF-Frames zu ändern.

curl -v -X GET "https://api.aspose.cloud/v3.0/imaging/input.tiff/frames/0?newWidth=400&newHeight=600&saveOtherFrames=false" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>"
-o ResizedFrame.tiff

Fazit

Dieser Artikel enthält einige erstaunliche Details zur Größenänderung von Bildern (TIFF) mit dem Java Cloud SDK. Wir haben die Schritte zum Ändern der Größe von TIFF-Frames mit Java-Code-Snippets gelernt und die Option zum Ändern der Bildgröße online mit cURL-Befehlen untersucht. Sie können auch erwägen, die vielversprechenden Funktionen der API über SwaggerUI im Webbrowser zu testen. Und falls Sie den Quellcode des SDK ändern möchten, können Sie ihn von GitHub herunterladen (alle unsere Cloud-SDKs werden unter MIT-Lizenz entwickelt).

Nichtsdestotrotz ist die Produktdokumentation eine erstaunliche Informationsquelle, um mehr über andere aufregende 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: