Tag Image File Format, forkortet TIFF eller TIF, er et computerfilformat til lagring af rastergrafikbilleder, populært blandt grafikere, forlagsindustrien og fotografer. TIFF er forskellig fra JPEG, GIF og PNG, fordi det er et “ukomprimeret” format. TIFF-filerne har mulighed for at gemme flere billeder, som hver har flere kanaler. Typisk repræsenterer disse multiple billeder de sekventielle billeder i en tidsstak eller z-stak af billeder, og derfor har hvert af disse billeder den samme dimension.
Andre muligheder, vi får i TIFF, er lag og sider, hvor laget kan sammenlignes med gennemsigtighed, hvorpå billedeffekter eller billeder påføres og placeres over eller under et billede. Som vist på billedet nedenfor, viser billedet flere lag, det har. I denne artikel vil vi diskutere trinene til, hvordan man udtrækker rammer fra multi-frame TIFF-billeder ved hjælp af Aspose.Imaging Cloud SDK for .NET.
Installation af SDK
Aspose.Imaging Cloud SDK til .NET er et programmerings-SDK udviklet oven på Aspose.Imaging Cloud API og leverer alle billedmanipulationsmuligheder til .NET-udviklere. Så det første trin er at installere SDK’et, som er tilgængeligt til download på NuGet og GitHub. Udfør følgende kommando for at installere SDK’et fra NuGet-biblioteket.
Install-Package Aspose.Imaging-Cloud
Eller som et alternativ kan du tilføje pakken ved hjælp af NuGet-pakkehåndtering i Visual Studio som vist nedenfor. Du kan overveje at besøge følgende link for yderligere detaljer om Sådan installeres Aspose.Cloud SDK’er.
For nu at bruge SDK’et er næste trin at få dit personlige ClientID og ClientSecret-oplysninger. Derfor er det første skridt at oprette en konto ved at besøge Aspose.Cloud dashboard. Hvis du har GitHub eller Google-konto, skal du blot tilmelde dig. Ellers skal du klikke på knappen Opret en ny konto og angive de nødvendige oplysninger. Log nu ind på dashboardet ved hjælp af legitimationsoplysninger og udvid applikationssektionen fra dashboardet, og rul ned mod sektionen Klientlegitimationsoplysninger for at se klient-id og klienthemmelighedsoplysninger.
Udpak TIFF-rammer ved hjælp af cURL-kommandoen
Først vil vi diskutere udvindingen af TIFF-rammer ved hjælp af cURL-kommandoen, da de er en af de bekvemme måder at få adgang til REST API’er på på enhver platform. Uanset platform og underliggende arkitektoniske kompleksiteter. Så for at bruge cURL-kommandoerne er det første trin at generere JSON Web Token (JWT) baseret på dit ClientID og ClientSecret-detaljer hentet fra Aspose.Cloud dashboard. Udfør venligst følgende kommando i terminalen for at generere JWT-tokenet
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"
Inden du går videre, skal du være opmærksom på, at rammen kan udtrækkes ved hjælp af en af følgende to API’er:
Den første API forventer, at du først uploader et billede til Cloud Storage og derefter sender dets navn i API-URL’en. Efter opdatering af billedparametrene returnerer API’en det opdaterede billede i svaret.
På den anden side, med den anden API, kan du sende billedet direkte i anmodningsteksten. Det lader dig også gemme det opdaterede billede på Cloud Storage ved at angive outPath-parameterværdien. Men hvis du ikke angiver værdien, indeholder svaret et streamet billede.
Brug nu følgende kommando til at udtrække den 4. frame fra TiffSampleImage.tiff billede, der allerede er uploadet på skylager.
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
Sådan udtrækkes TIFF-rammer i C#
I dette afsnit skal vi udtrække TIFF-rammen ved hjælp af C# .NET. Følg venligst nedenstående trin
- Det første trin er at oprette et objekt af ImagingApi, mens du giver ClientID og ClientSecret som argumenter
- Opret et strengobjekt, der definerer input-TIFF-billede
- For at angive den ramme, der skal udtrækkes, skal du oprette et heltal
- Opret heltalsobjekter for at angive dimensionerne af den udtrukne ramme
- Det næste trin er at oprette et objekt GetImageFrameRequest, som tager input TIFF-navn, frameID og andre parametre relateret til udtrukne rammedimensioner som argumenter
- Næstsidste, kald GetImageFrame(..) metoden for ImagingApi, som tager GetImageFrameRequest-objektet som input-argument
- Gem til sidst outputtet for at indlæse drevet
string clientID = "718e4235-8866-4ebe-bff4-f5a14a4b6466"; // Get ClientID from https://dashboard.aspose.cloud/
string clientSecret = "388e864b819d8b067a8b1cb625a2ea8e"; // Get CLientSecret from https://dashboard.aspose.cloud/
// oprette en instans af ImagingApi
Aspose.Imaging.Cloud.Sdk.Api.ImagingApi imagingApi = new ImagingApi(clientSecret, clientID,"https://api.aspose.cloud/","v3.0",false);
// input TIFF-billede tilgængeligt på skylager
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";
// Resultatet inkluderer kun den angivne ramme
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);
// Gem opdateret billede til lokal lagring
using (var fileStream = File.Create("/Users/nayyershahbaz/Downloads/MyResultant.tiff"))
{
imageFrame.Seek(0, SeekOrigin.Begin);
imageFrame.CopyTo(fileStream);
}
Bemærk venligst, at rotateFlipMethod-egenskaben kan have en af følgende værdier
RotateFlip-metoden (Rotate180FlipNone, Rotate180FlipX, Rotate180FlipXY, Rotate180FlipY, Rotate270FlipNone, Rotate270FlipX, Rotate270FlipXY, Rotate270FlipY, Rotate90FlipFlipX, Rotate90FlipX, Rotate90FlipX, Rotate90FlipX, Rotate lipNone, RotateNoneFlipX, RotateNoneFlipXY, RotateNoneFlipY).Standard er RotateNoneFlipNone.
Konklusion
Udvindingen af TIFF-rammer fra multi-frame TIFF er blevet forklaret i ovenstående artikel. Udover frame-ekstraktion giver API’en dig mulighed for at ændre størrelsen på TIFF-rammerne, Hent TIFF-rammeegenskaber, Beskær en TIFF-ramme, RotateFlip en TIFF-ramme, osv. Hvis du støder på problemer, mens du bruger API’en, er du velkommen til at kontakte os via et gratis supportforum.
Vi foreslår også, at du går gennem følgende links for mere information om