TIFF-frames extraheren

Tag Image File Format, afgekort TIFF of TIF, is een computerbestandsformaat voor het opslaan van rasterafbeeldingen, populair onder grafische kunstenaars, de uitgeversindustrie en fotografen. TIFF verschilt van JPEG, GIF en PNG omdat het een “ongecomprimeerd” formaat is. De TIFF-bestanden hebben de mogelijkheid om meerdere afbeeldingen op te slaan, elk met meerdere kanalen. Meestal vertegenwoordigen deze meerdere afbeeldingen de opeenvolgende frames in een time-stack of z-stack van afbeeldingen, en daarom heeft elk van deze afbeeldingen dezelfde dimensie.

Andere opties die we in TIFF krijgen, zijn lagen en pagina’s waarbij de laag kan worden vergeleken met transparantie waarop beeldeffecten of afbeeldingen worden toegepast en over of onder een afbeelding worden geplaatst. Zoals weergegeven in de onderstaande afbeelding, toont de afbeelding meerdere lagen die deze heeft. In dit artikel bespreken we de stappen voor het extraheren van frames uit multi-frame TIFF-afbeeldingen met behulp van Aspose.Imaging Cloud SDK voor .NET.

TIFF-afbeelding met frames

Installatie van SDK

Aspose.Imaging Cloud SDK voor .NET is een programmeer-SDK die is ontwikkeld op basis van Aspose.Imaging Cloud API en alle mogelijkheden voor beeldmanipulatie biedt aan .NET-ontwikkelaars. De eerste stap is dus het installeren van de SDK die u kunt downloaden op NuGet en GitHub. Voer de volgende opdracht uit om de SDK te installeren vanuit de NuGet-bibliotheek.

Install-Package Aspose.Imaging-Cloud

Of als alternatief kunt u het pakket toevoegen met behulp van NuGet-pakketbeheer in Visual Studio, zoals hieronder weergegeven. U kunt overwegen de volgende link te bezoeken voor meer informatie over Hoe installeer ik Aspose.Cloud SDK’s.

Aspose.Imaging Cloud SDK

Om de SDK te gebruiken, is de volgende stap het verkrijgen van uw gepersonaliseerde ClientID en ClientSecret-gegevens. Daarom is de eerste stap het aanmaken van een account door naar Aspose.Cloud dashboard te gaan. Als u een GitHub- of Google-account hebt, hoeft u zich alleen maar aan te melden. Klik anders op de knop Maak een nieuw account en geef de vereiste informatie op. Meld u nu aan bij het dashboard met behulp van referenties en vouw de sectie Toepassingen uit op het dashboard en scrol omlaag naar de sectie Clientreferenties om de details van de Client-ID en Client Secret te zien.

ClientID en ClientSecret-voorbeeld

TIFF-frames extraheren met behulp van de cURL-opdracht

Eerst gaan we de extractie van TIFF-frames bespreken met behulp van de cURL-opdracht, omdat dit een van de handige manieren is om toegang te krijgen tot REST API’s op elk platform. Ongeacht het platform en de onderliggende architecturale complexiteit. Om de cURL-opdrachten te gebruiken, is de eerste stap het genereren van JSON Web Token (JWT) op basis van uw ClientID- en ClientSecret-gegevens die zijn opgehaald uit het Aspose.Cloud-dashboard. Voer de volgende opdracht uit in de terminal om de JWT-token te genereren

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"

Voordat u verdergaat, dient u er rekening mee te houden dat het frame kan worden geëxtraheerd met behulp van een van de volgende twee API’s:

De eerste API verwacht dat u eerst een afbeelding uploadt naar Cloud Storage en vervolgens de naam ervan doorgeeft in de API-URL. Na het bijwerken van de afbeeldingsparameters retourneert de API de bijgewerkte afbeelding in de respons.

Aan de andere kant kunt u met de tweede API de afbeelding rechtstreeks doorgeven in de aanvraagbody. U kunt de bijgewerkte afbeelding ook opslaan op de Cloud Storage door de outPath-parameterwaarde op te geven. Als u de waarde echter niet opgeeft, bevat de respons een gestreamde afbeelding.

Gebruik nu de volgende opdracht om het 4e frame uit de afbeelding TiffSampleImage.tiff te extraheren die al is geüpload naar de cloudopslag.

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

Hoe TIFF-frames in C# te extraheren

In deze sectie gaan we het TIFF-frame extraheren met behulp van C# .NET. Volg de onderstaande stappen

  • De eerste stap is het maken van een object van ImagingApi terwijl ClientID en ClientSecret als argumenten worden opgegeven
  • Maak een stringobject dat de invoer-TIFF-afbeelding definieert
  • Om het frame te specificeren dat moet worden geëxtraheerd, maakt u een geheel getal
  • Maak gehele getallen om de afmetingen van het geëxtraheerde frame te specificeren
  • De volgende stap is het maken van een object GetImageFrameRequest dat de invoer-TIFF-naam, frameID en andere parameters gerelateerd aan geëxtraheerde frame-afmetingen als argumenten accepteert.
  • Voorlaatste, roep de GetImageFrame(..) methode van ImagingApi aan die het GetImageFrameRequest object als invoerargument neemt
  • Sla ten slotte de uitvoer op om de schijf te 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/

// maak een instantie van ImagingApi
Aspose.Imaging.Cloud.Sdk.Api.ImagingApi imagingApi = new ImagingApi(clientSecret, clientID,"https://api.aspose.cloud/","v3.0",false);

// invoer TIFF-afbeelding beschikbaar op Cloud-opslag
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";

// Het resultaat bevat alleen het opgegeven frame
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);

// Bijgewerkte afbeelding opslaan op lokale opslag
using (var fileStream = File.Create("/Users/nayyershahbaz/Downloads/MyResultant.tiff"))
{
    imageFrame.Seek(0, SeekOrigin.Begin);
    imageFrame.CopyTo(fileStream);
}

Houd er rekening mee dat de eigenschap rotateFlipMethod een van de volgende waarden kan hebben

RotateFlip-methode (Rotate180FlipNone, Rotate180FlipX, Rotate180FlipXY, Rotate180FlipY, Rotate270FlipNone, Rotate270FlipX, Rotate270FlipXY, Rotate270FlipY, Rotate90FlipNone, Rotate90FlipX, Rotate90FlipXY, Rotate90FlipY, RotateNoneFlipNone, RotateNoneFlipX, RotateNoneFlipXY, RotateNoneFlipY).Standaard is RotateNoneFlipNone.

Conclusie

De extractie van TIFF-frames uit multi-frame TIFF is uitgelegd in het bovenstaande artikel. Naast frame-extractie stelt de API u in staat om de grootte van TIFF-frames te wijzigen, TIFF-frame-eigenschappen ophalen, een TIFF-frame bijsnijden, een TIFF-frame roteren/flippen, etc. Mocht u problemen ondervinden bij het gebruik van de API, neem dan gerust contact met ons op via een gratis supportforum.

Wij raden u ook aan om de volgende links te raadplegen voor meer informatie over