TIFF-Frames extrahieren

Tag Image File Format, abgekürzt TIFF oder TIF, ist ein Computerdateiformat zum Speichern von Rastergrafiken, das bei Grafikern, in der Verlagsbranche und bei Fotografen beliebt ist. TIFF unterscheidet sich von JPEG, GIF und PNG, da es ein „unkomprimiertes“ Format ist. Die TIFF Dateien können mehrere Bilder speichern, von denen jedes mehrere Kanäle hat. Normalerweise stellen diese mehreren Bilder die aufeinanderfolgenden Frames in einem Zeitstapel oder Z-Stapel von Bildern dar, und daher hat jedes dieser Bilder die gleiche Dimension.

Weitere Optionen, die wir in TIFF erhalten, sind Ebenen und Seiten, bei denen die Ebene mit Transparenz verglichen werden kann, auf die Bildeffekte oder Bilder angewendet und über oder unter einem Bild platziert werden. Wie im Bild unten gezeigt, weist das Bild mehrere Ebenen auf. In diesem Artikel besprechen wir die Schritte zum Extrahieren von Frames aus TIFF bildern mit mehreren Frames mithilfe von Aspose.Imaging Cloud SDK für .NET.

TIFF bild mit Rahmen

Installation des SDK

Aspose.Imaging Cloud SDK für .NET ist ein Programmier-SDK, das auf der Aspose.Imaging Cloud API entwickelt wurde und .NET-Entwicklern alle Bildbearbeitungsfunktionen bietet. Der erste Schritt besteht also darin, das SDK zu installieren, das unter NuGet und GitHub zum Download bereitsteht. Führen Sie den folgenden Befehl aus, um das SDK aus der NuGet-Bibliothek zu installieren.

Install-Package Aspose.Imaging-Cloud

Alternativ können Sie das Paket auch mit dem NuGet-Paketmanager in Visual Studio hinzufügen, wie unten gezeigt. Weitere Informationen zur Installation von Aspose.Cloud SDKs finden Sie unter folgendem Link.

Aspose.Imaging Cloud SDK

Um das SDK verwenden zu können, müssen Sie im nächsten Schritt Ihre personalisierten ClientID und ClientSecret-Daten abrufen. Der erste Schritt besteht daher darin, ein Konto zu erstellen, indem Sie das Aspose.Cloud-Dashboard besuchen. Wenn Sie ein GitHub oder Google-Konto haben, melden Sie sich einfach an. Andernfalls klicken Sie auf die Schaltfläche Neues Konto erstellen und geben Sie die erforderlichen Informationen ein. Melden Sie sich nun mit Ihren Anmeldeinformationen beim Dashboard an, erweitern Sie den Abschnitt „Anwendungen“ im Dashboard und scrollen Sie nach unten zum Abschnitt „Client-Anmeldeinformationen“, um die Details zu Client-ID und Client Secret anzuzeigen.

ClientID und ClientSecret-Vorschau

Extrahieren Sie TIFF-Frames mit dem cURL-Befehl

Zunächst besprechen wir die Extraktion von TIFF-Frames mit dem cURL-Befehl, da dies eine der bequemsten Möglichkeiten ist, auf jeder Plattform auf REST-APIs zuzugreifen. Unabhängig von der Plattform und den zugrunde liegenden architektonischen Komplexitäten. Um die cURL-Befehle verwenden zu können, besteht der erste Schritt darin, ein JSON Web Token (JWT) basierend auf Ihren ClientID und ClientSecret-Details zu generieren, die vom Aspose.Cloud-Dashboard abgerufen wurden. Bitte führen Sie den folgenden Befehl im Terminal aus, um das JWT-Token zu generieren

curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=718e4235-8866-4ebe-bff4-f5a14a4b6466&client_secret=388e864b819d8b067a8b1cb625a2ea8e" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"

Bevor Sie fortfahren, beachten Sie bitte, dass der Frame mit einer der folgenden beiden APIs extrahiert werden kann:

Die erste API erwartet, dass Sie zuerst ein Bild in Cloud Storage hochladen und dann seinen Namen in der API-URL übergeben. Nach der Aktualisierung der Bildparameter gibt die API das aktualisierte Bild in der Antwort zurück.

Mit der zweiten API hingegen können Sie das Bild direkt im Anforderungstext übergeben. Außerdem können Sie das aktualisierte Bild im Cloud Storage speichern, indem Sie den Parameterwert outPath angeben. Wenn Sie den Wert jedoch nicht angeben, enthält die Antwort ein gestreamtes Bild.

Verwenden Sie nun den folgenden Befehl, um das vierte Bild aus dem bereits in den Cloud-Speicher hochgeladenen Bild TiffSampleImage.tiff zu extrahieren.

curl -v -X GET "https://api.aspose.cloud/v3.0/imaging/TiffSampleImage.tiff/frames/4?saveOtherFrames=true" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>" \
-o myresultant.tiff

So extrahieren Sie TIFF-Frames in C#

In diesem Abschnitt extrahieren wir den TIFF-Rahmen mit C# .NET. Bitte folgen Sie den unten angegebenen Schritten

  • Der erste Schritt besteht darin, ein Objekt von ImagingApi zu erstellen und dabei ClientID und ClientSecret als Argumente anzugeben
  • Erstellen Sie ein String Objekt, das das TIFF-Eingabebild definiert
  • Um den zu extrahierenden Frame anzugeben, erstellen Sie eine Ganzzahl
  • Erstellen Sie ganzzahlige Objekte, um die Abmessungen des extrahierten Rahmens anzugeben
  • Der nächste Schritt besteht darin, ein Objekt GetImageFrameRequest zu erstellen, das den TIFF-Namen, die FrameID und andere Parameter, die sich auf die extrahierten Frame-Abmessungen beziehen, als Argumente verwendet.
  • Vorletztes, rufen Sie die Methode GetImageFrame(..) von ImagingApi auf, die das Objekt GetImageFrameRequest als Eingabeargument verwendet
  • Speichern Sie abschließend die Ausgabe, um das Laufwerk zu laden
string clientID = "718e4235-8866-4ebe-bff4-f5a14a4b6466"; // Get ClientID from https://dashboard.aspose.cloud/
string clientSecret = "388e864b819d8b067a8b1cb625a2ea8e"; // Get CLientSecret from https://dashboard.aspose.cloud/

// Erstellen Sie eine Instanz von ImagingApi
Aspose.Imaging.Cloud.Sdk.Api.ImagingApi imagingApi = new ImagingApi(clientSecret, clientID,"https://api.aspose.cloud/","v3.0",false);

// Eingabe-TIFF bild im Cloud-Speicher verfügbar
String fileName = "TiffSampleImage.tiff";

int? frameId = 5; // Index of a frame
int? newWidth = 300;
int? newHeight = 450;
int? x = 10;
int? y = 10;
int? rectWidth = 200;
int? rectHeight = 300;

string rotateFlipMethod = "RotateNoneFlipNone";

// Das Ergebnis umfasst nur den angegebenen Rahmen
bool? saveOtherFrames = false;

string folder = null; // Input file is saved at the root of the storage
string storage = null; // We are using default Cloud Storage

GetImageFrameRequest getImageFrameRequest = new GetImageFrameRequest(fileName, frameId, newWidth, newHeight,
                                x, y, rectWidth, rectHeight, rotateFlipMethod, saveOtherFrames, folder, storage);

Stream imageFrame = imagingApi.GetImageFrame(getImageFrameRequest);

// Aktualisiertes Bild im lokalen Speicher speichern
using (var fileStream = File.Create("/Users/nayyershahbaz/Downloads/MyResultant.tiff"))
{
    imageFrame.Seek(0, SeekOrigin.Begin);
    imageFrame.CopyTo(fileStream);
}

Bitte beachten Sie, dass die Eigenschaft rotateFlipMethod einen der folgenden Werte haben kann

RotateFlip-Methode (Rotate180FlipNone, Rotate180FlipX, Rotate180FlipXY, Rotate180FlipY, Rotate270FlipNone, Rotate270FlipX, Rotate270FlipXY, Rotate270FlipY, Rotate90FlipNone, Rotate90FlipX, Rotate90FlipXY, Rotate90FlipY, RotateNoneFlipNone, RotateNoneFlipX, RotateNoneFlipXY, RotateNoneFlipY).Standard ist RotateNoneFlipNone.

Abschluss

Die Extraktion von TIFF-Frames aus Multi-Frame-TIFF wurde im obigen Artikel erläutert. Neben der Frame-Extraktion können Sie mit der API auch die Größe der TIFF-Frames ändern, TIFF-Frame-Eigenschaften abrufen, einen TIFF-Frame zuschneiden, einen TIFF-Frame drehen/kippen usw. Falls Sie bei der Verwendung der API auf Probleme stoßen, können Sie uns gerne über ein kostenloses Support-Forum kontaktieren.

Wir empfehlen Ihnen außerdem, die folgenden Links zu besuchen, um weitere Informationen zu erhalten: