hvordan man udtrækker tiff-billede

Sådan udtrækkes billeder fra TIFF-filer

TIFF af TIF er en forkortelse for Tag Image File Format og det er blandt de populære rastergrafikbilleder, der er meget brugt af grafikere, forlagsindustrien og fotografer. TIFF er forskellig fra JPEG, GIF og PNG, fordi det er et “ukomprimeret” format og kan gemme meget flere billeddata end deres JPEG-modstykker. Nu er en af de fremtrædende egenskaber ved TIFF-filer dens evne til at gemme flere billeder (hver har flere kanaler) som sekventielle billeder i en tidsstak eller z-stak af billeder. Så i denne artikel skal vi udforske detaljerne om, hvordan man udtrækker rammer fra multi-frame TIFF-billeder ved hjælp af Java Cloud SDK.

TIFF Image Processing API

Vi har skabt et billedbehandlings-API, der tilbyder mulighederne for at redigere, manipulere og transformere raster, metafiler, Photoshop og andre understøttede formater til en række forskellige filformater. Når vi nu taler om TIFF-billedmanipulation, er API’en meget i stand til at behandle TIFF-billeder. Så i henhold til denne artikels omfang vil vi bruge Aspose.Imaging Cloud SDK til Java, som er en indpakning omkring REST API. Så det første skridt i at udnytte dets muligheder er at tilføje dets reference i java-projektet ved at inkludere følgende oplysninger i pom.xml (maven build type project).

<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>

Det næste trin er at indhente klientoplysninger fra Cloud Dashboard, og hvis du ikke har en konto over Aspose Cloud Dashboard, skal du oprette en gratis konto via en gyldig e-mailadresse. Log nu ind med en nyoprettet konto, og find/opret klient-id og klienthemmelighed på Aspose Cloud Dashboard.

Sådan udpakkes TIFF-billede i Java

Lad os udforske detaljerne om, hvordan man udpakker billeder fra tiff-filer ved hjælp af Java-kodestykke. Bemærk venligst, at API’en også giver dig mulighed for at ændre størrelse, beskære og rotere. Vend den udtrukne ramme. Desuden giver en af de boolske parameter saveOtherFrames dig mulighed for at angive, om resultatet vil inkludere alle andre frames eller kun en specificeret frame.

  • For det første skal du oprette et objekt af ImagingApi baseret på personlige klientoplysninger
  • For det andet skal du læse indholdet af det første TIFF-billede ved hjælp af readAllBytes(…)-metoden og videregive til byte[]-array
  • For det tredje skal du oprette en forekomst af klassen UploadFileRequest, hvor vi angiver navnet på TIFF over Cloud-lagring
  • Upload nu det første TIFF-billede til skylageret ved hjælp af uploadFile(…)-metoden
  • Næste trin er at specificere TIFF-rammeindekset, højden og bredden af den udtrukne ramme, udtrækningens oprindelse og angive, om du vil have den udtrukne ramme i en bestemt engel
  • Opret nu et objekt af GetImageFrameRequest, hvor vi specificerer input TIFF-billede og ovenfor definerede egenskaber
  • Kald getImageFrame(…)-metoden til ImagingAPI for at få TIFF-ramme
  • Gem den udpakkede ramme på det lokale drev ved hjælp af FileOutputStream-objektet
// Få ClientID og ClientSecret fra https://dashboard.aspose.cloud/
String clientId = "7ef10407-c1b7-43bd-9603-5ea9c6db83cd";
String clientSecret = "ba7cc4dc0c0478d7b508dd8ffa029845";

// oprette billedobjekt
ImagingApi imageApi = new ImagingApi(clientSecret, clientId);

// indlæs det første TIFF-billede fra det lokale system
File file1 = new File("DeskewSampleImage.tif");
byte[] imageStream = Files.readAllBytes(file1.toPath());
			
// oprette fil upload anmodning objekt
UploadFileRequest uploadRequest = new UploadFileRequest("input.tiff",imageStream,null);
// upload det første TIFF-billede til skylageret
imageApi.uploadFile(uploadRequest);

Integer frameId = 0; // Frame number inside TIFF
// ny bredde og højde på udtrukket ramme
Integer newWidth = 1000;
Integer newHeight = 1400;

// oprindelse for at starte rammeekstraktion
Integer x = 10;
Integer y = 10;

// rektangulært område for at udtrække rammen
Integer rectWidth = 900;
Integer rectHeight = 800;

// angiv rotationsvinklen for udtrukket TIFF-ramme
String rotateFlipMethod = "Rotate90FlipY";
// Resultat for kun at inkludere den angivne ramme og ikke andre rammer
Boolean saveOtherFrames = false;

// Opret et anmodningsobjekt for at udtrække tiff-rammer baseret på specificerede detaljer
GetImageFrameRequest getImageFrameRequest = new GetImageFrameRequest("input.tiff", frameId, newWidth, newHeight,
                    x, y, rectWidth, rectHeight, null, saveOtherFrames, null, null);

// den udtrukne ramme returneres i svarstrøm
byte[] updatedImage = imageApi.getImageFrame(getImageFrameRequest);

// Gem udtrukket TIFF-ramme på lokal lagring
FileOutputStream fos = new FileOutputStream("/Users/s4/Documents/" + "Extracted-TIFF.tiff");
fos.write(updatedImage);
fos.close();
udtræk tiff ramme

Få TIFF Frames Preview

Eksempler på TIFF-billeder brugt i ovenstående eksempel kan downloades fra DeskewSampleImage.tif.

TIFF-billedbehandling ved hjælp af cURL-kommandoer

En anden bekvem måde at få adgang til REST API’er er via cURL-kommandoer. Da Aspose.Imaging Cloud er baseret på REST-arkitektur, så kan vi også udtrække tiff-billedrammer ved hjælp af cURL-kommandoer. Nu er forudsætningen for denne aktivitet at generere et JWT-adgangstoken (baseret på klientlegitimationsoplysninger) ved hjælp af følgende kommando.

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"

Efter JWT-tokengenereringen skal vi udføre følgende kommando for at udtrække TIFF-billedramme.

curl -v -X GET "https://api.aspose.cloud/v3.0/imaging/first.tiff/frames/0?newWidth=1000&newHeight=1200&x=10&y=10&rectWidth=800&rectHeight=800&saveOtherFrames=false" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>" \
-o ExtractedFrame.tiff

Konklusion

På dette tidspunkt har vi lært alle de nødvendige detaljer om, hvordan man udpakker billeder fra tiff-filer. Vi har undersøgt muligheden for at udtrække TIFF-ramme ved hjælp af Java Java-kodestykke eller gennem cURL-kommandoer. En anden tilgang til at teste de lovende funktioner i API er via SwaggerUI, og hvis du vil ændre kildekoden for SDK, kan du downloade den fra GitHub (alle vores Cloud SDK’er er udviklet under MIT licens).

Ikke desto mindre er Produktdokumentationen en fantastisk kilde til information til at lære om andre spændende funktioner, der tilbydes af API. Til sidst, hvis du støder på problemer, mens du bruger API, kan du overveje at kontakte os for en hurtig løsning via gratis produktsupportforum.

relaterede artikler

Besøg venligst følgende links for at lære mere om: