Estrarre i frame TIFF

Tag Image File Format, abbreviato TIFF o TIF, è un formato di file per computer per l’archiviazione di immagini grafiche raster, popolare tra grafici, editoria e fotografi. TIFF è diverso da JPEG, GIF e PNG perché è un formato “non compresso”. I file TIFF hanno la capacità di archiviare più immagini, ciascuna con più canali. In genere, queste immagini multiple rappresentano i fotogrammi sequenziali in un time-stack o z-stack di immagini e quindi ciascuna di queste immagini ha la stessa dimensione.

Altre opzioni che otteniamo in TIFF sono livelli e pagine in cui il livello può essere confrontato con la trasparenza su cui vengono applicati effetti di imaging o immagini e posizionati sopra o sotto un’immagine. Come mostrato nell’immagine sottostante, l’immagine mostra più livelli di cui dispone. In questo articolo, discuteremo i passaggi su come estrarre i frame dalle immagini TIFF multi-frame utilizzando Aspose.Imaging Cloud SDK per .NET.

Immagine TIFF con cornici

Installazione dell’SDK

Aspose.Imaging Cloud SDK per .NET è un SDK di programmazione sviluppato su Aspose.Imaging Cloud API e fornisce tutte le capacità di manipolazione delle immagini agli sviluppatori .NET. Quindi il primo passo è installare l’SDK che è disponibile per il download su NuGet e GitHub. Eseguire il seguente comando per installare l’SDK dalla libreria NuGet.

Install-Package Aspose.Imaging-Cloud

In alternativa, puoi aggiungere il pacchetto utilizzando il gestore pacchetti NuGet in Visual Studio come mostrato di seguito. Puoi prendere in considerazione la possibilità di visitare il seguente collegamento per ulteriori dettagli su Come installare gli SDK Aspose.Cloud.

SDK cloud di Aspose.Imaging

Ora, per utilizzare l’SDK, il passo successivo è ottenere i dettagli personalizzati di ClientID e ClientSecret. Pertanto, il primo passo è creare un account visitando Aspose.Cloud dashboard. Se hai un account GitHub o Google, registrati semplicemente. Altrimenti, clicca sul pulsante Crea un nuovo account e fornisci le informazioni richieste. Ora accedi alla dashboard utilizzando le credenziali ed espandi la sezione Applicazioni dalla dashboard e scorri verso il basso fino alla sezione Credenziali client per vedere i dettagli di Client ID e Client Secret.

Anteprima ClientID e ClientSecret

Estrarre i frame TIFF utilizzando il comando cURL

Per prima cosa, discuteremo dell’estrazione di frame TIFF tramite il comando cURL, in quanto rappresentano uno dei modi più comodi per accedere alle API REST su qualsiasi piattaforma. Indipendentemente dalla piattaforma e dalle complessità architettoniche sottostanti. Quindi, per utilizzare i comandi cURL, il primo passaggio è generare un JSON Web Token (JWT) in base ai dettagli ClientID e ClientSecret recuperati dalla dashboard di Aspose.Cloud. Eseguire il seguente comando nel terminale per generare il token JWT

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"

Prima di procedere oltre, tieni presente che il frame può essere estratto utilizzando una delle due API seguenti:

La prima API si aspetta che tu carichi prima un’immagine su Cloud Storage e poi passi il suo nome nell’URL API. Dopo aver aggiornato i parametri dell’immagine, l’API restituisce l’immagine aggiornata nella risposta.

D’altro canto, con la seconda API, puoi passare direttamente l’immagine nel corpo della richiesta. Ti consente anche di salvare l’immagine aggiornata su Cloud Storage specificando il valore del parametro outPath. Tuttavia, se non specifichi il valore, la risposta contiene un’immagine trasmessa in streaming.

Ora usa il seguente comando per estrarre il quarto fotogramma dall’immagine TiffSampleImage.tiff già caricata sullo storage cloud.

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

Come estrarre i frame TIFF in C#

In questa sezione, estrarremo il frame TIFF utilizzando C# .NET. Seguire i passaggi indicati di seguito

  • Il primo passo è creare un oggetto di ImagingApi fornendo ClientID e ClientSecret come argomenti
  • Crea un oggetto stringa che definisce l’immagine TIFF di input
  • Per specificare il frame da estrarre, creare un numero intero
  • Crea oggetti interi per specificare le dimensioni del frame estratto
  • Il passo successivo è creare un oggetto GetImageFrameRequest che accetta come argomenti il nome TIFF di input, il frameID e altri parametri relativi alle dimensioni del frame estratto
  • Penultimo, chiama il metodo GetImageFrame(..) di ImagingApi che accetta l’oggetto GetImageFrameRequest come argomento di input
  • Infine, salva l’output per caricare l’unità
string clientID = "718e4235-8866-4ebe-bff4-f5a14a4b6466"; // Get ClientID from https://dashboard.aspose.cloud/
string clientSecret = "388e864b819d8b067a8b1cb625a2ea8e"; // Get CLientSecret from https://dashboard.aspose.cloud/

// creare un'istanza di ImagingApi
Aspose.Imaging.Cloud.Sdk.Api.ImagingApi imagingApi = new ImagingApi(clientSecret, clientID,"https://api.aspose.cloud/","v3.0",false);

// immagine TIFF di input disponibile su Cloud storage
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";

// Il risultato includerà solo il frame specificato
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);

// Salva l'immagine aggiornata nell'archivio locale
using (var fileStream = File.Create("/Users/nayyershahbaz/Downloads/MyResultant.tiff"))
{
    imageFrame.Seek(0, SeekOrigin.Begin);
    imageFrame.CopyTo(fileStream);
}

Si prega di notare che la proprietà rotateFlipMethod può avere uno dei seguenti valori

Metodo RotateFlip (Rotate180FlipNone, Rotate180FlipX, Rotate180FlipXY, Rotate180FlipY, Rotate270FlipNone, Rotate270FlipX, Rotate270FlipXY, Rotate270FlipY, Rotate90FlipNone, Rotate90FlipX, Rotate90FlipXY, Rotate90FlipY, RotateNoneFlipNone, RotateNoneFlipX, RotateNoneFlipXY, RotateNoneFlipY).Il valore predefinito è RotateNoneFlipNone.

Conclusione

L’estrazione di frame TIFF da TIFF multi-frame è stata spiegata nell’articolo sopra. Oltre all’estrazione dei frame, l’API consente di ridimensionare i frame TIFF, ottenere le proprietà del frame TIFF, ritagliare un frame TIFF, ruotare/capovolgere un frame TIFF, ecc. In caso di problemi durante l’utilizzo dell’API, non esitate a contattarci tramite un forum di supporto gratuito.

Ti consigliamo inoltre di consultare i seguenti link per maggiori informazioni su