hoe tiff-afbeelding te extraheren

Hoe afbeeldingen uit TIFF-bestanden te extraheren

TIFF van TIF is een afkorting voor Tag Image File Format en is een van de populaire grafische rasterafbeeldingen, die veel worden gebruikt door grafische kunstenaars, de uitgeverij en fotografen. TIFF verschilt van JPEG, GIF en PNG omdat het een “ongecomprimeerd” formaat is en veel meer beeldgegevens kan opslaan dan hun JPEG-tegenhangers. Nu is een van de opvallende kenmerken van TIFF-bestanden de mogelijkheid om meerdere afbeeldingen (elk met meerdere kanalen) op te slaan als sequentiële frames in een time-stack of z-stack van afbeeldingen. Dus in dit artikel gaan we de details onderzoeken over het extraheren van frames uit TIFF-afbeeldingen met meerdere frames met behulp van Java Cloud SDK.

API voor TIFF-beeldverwerking

We hebben een beeldverwerkings-API gemaakt die de mogelijkheid biedt om rasters, metabestanden, photoshop en andere ondersteunde indelingen te bewerken, manipuleren en transformeren naar verschillende bestandsindelingen. Nu we het hebben over manipulatie van TIFF-afbeeldingen, de API is heel goed in staat om TIFF-afbeeldingen te verwerken. Dus volgens de reikwijdte van dit artikel gaan we Aspose.Imaging Cloud SDK voor Java gebruiken, wat een wrapper is rond REST API. Dus de eerste stap bij het benutten van de mogelijkheden is het toevoegen van de referentie in het java-project door de volgende informatie op te nemen in pom.xml (maven build-type project).

<repositories> 
    <repository>
        <id>aspose-cloud</id>
        <name>artifact.aspose-cloud-releases</name>
        <url>https://artifact.aspose.cloud/repo</url>
    </repository>   
</repositories>

<dependencies>
    <dependency>
        <groupId>com.aspose</groupId>
        <artifactId>aspose-imaging-cloud</artifactId>
        <version>22.4</version>
    </dependency>
</dependencies>

De volgende stap is het verkrijgen van klantreferentiegegevens van Cloud Dashboard en als u geen account hebt via Aspose Cloud Dashboard, maak dan een gratis account aan via een geldig e-mailadres. Log nu in met een nieuw aangemaakt account en zoek/maak Client ID en Client Secret op bij Aspose Cloud Dashboard.

Hoe TIFF-afbeelding in Java te extraheren

Laten we de details bekijken over het extraheren van afbeeldingen uit tiff-bestanden met behulp van een Java-codefragment. Houd er rekening mee dat u met de API ook het geëxtraheerde frame kunt verkleinen, bijsnijden en roteren. Bovendien kunt u met een van de booleaanse parameters saveOtherFrames specificeren of het resultaat alle andere frames omvat of alleen een opgegeven frame.

  • Maak eerst een object van ImagingApi op basis van gepersonaliseerde klantreferenties
  • Ten tweede, lees de inhoud van de eerste TIFF-afbeelding met behulp van de readAllBytes(…)-methode en geef deze door aan de byte[]-array
  • Ten derde, maak een instantie van de klasse UploadFileRequest waarin we de naam van TIFF via cloudopslag specificeren
  • Upload nu de eerste TIFF-afbeelding naar cloudopslag met behulp van de methode uploadFile(…).
  • De volgende stap is het specificeren van de TIFF-frame-index, hoogte en breedte van het geëxtraheerde frame, oorsprong van extractie en specificeren of u het geëxtraheerde frame in een bepaalde engel wilt
  • Maak nu een object van GetImageFrameRequest waar we invoer TIFF-afbeelding en hierboven gedefinieerde eigenschappen specificeren
  • Roep de methode getImageFrame(…) van ImagingAPI aan om een TIFF-frame te krijgen
  • Sla het uitgepakte frame op de lokale schijf op met behulp van het FileOutputStream-object
// Haal ClientID en ClientSecret op van https://dashboard.aspose.cloud/
String clientId = "7ef10407-c1b7-43bd-9603-5ea9c6db83cd";
String clientSecret = "ba7cc4dc0c0478d7b508dd8ffa029845";

// Imaging-object maken
ImagingApi imageApi = new ImagingApi(clientSecret, clientId);

// laad de eerste TIFF-afbeelding van het lokale systeem
File file1 = new File("DeskewSampleImage.tif");
byte[] imageStream = Files.readAllBytes(file1.toPath());
			
// maak een aanvraagobject voor het uploaden van bestanden
UploadFileRequest uploadRequest = new UploadFileRequest("input.tiff",imageStream,null);
// upload eerste TIFF-afbeelding naar cloudopslag
imageApi.uploadFile(uploadRequest);

Integer frameId = 0; // Frame number inside TIFF
// nieuwe breedte en hoogte van uitgepakt frame
Integer newWidth = 1000;
Integer newHeight = 1400;

// origin om frame-extractie te starten
Integer x = 10;
Integer y = 10;

// rechthoekig gebied om frame te extraheren
Integer rectWidth = 900;
Integer rectHeight = 800;

// geef de draaihoek op voor het geëxtraheerde TIFF-frame
String rotateFlipMethod = "Rotate90FlipY";
// Resultaat om alleen het opgegeven frame op te nemen, niet andere frames
Boolean saveOtherFrames = false;

// Maak een verzoekobject om tiff-frames te extraheren op basis van gespecificeerde details
GetImageFrameRequest getImageFrameRequest = new GetImageFrameRequest("input.tiff", frameId, newWidth, newHeight,
                    x, y, rectWidth, rectHeight, null, saveOtherFrames, null, null);

// het geëxtraheerde frame wordt geretourneerd in de responsstroom
byte[] updatedImage = imageApi.getImageFrame(getImageFrameRequest);

// Bewaar geëxtraheerd TIFF-frame op lokale opslag
FileOutputStream fos = new FileOutputStream("/Users/s4/Documents/" + "Extracted-TIFF.tiff");
fos.write(updatedImage);
fos.close();
tiff-frame uitpakken

Krijg TIFF Frames-voorbeeld

De voorbeeld-TIFF-afbeeldingen die in het bovenstaande voorbeeld zijn gebruikt, kunnen worden gedownload van DeskewSampleImage.tif.

TIFF-beeldverwerking met behulp van cURL-opdrachten

Een andere handige manier om toegang te krijgen tot REST API’s is via cURL-opdrachten. Omdat Aspose.Imaging Cloud is gebaseerd op REST-architectuur, kunnen we ook tiff-afbeeldingsframes extraheren met behulp van cURL-opdrachten. Nu is de vereiste van deze activiteit het genereren van een JWT-toegangstoken (op basis van clientreferenties) met behulp van de volgende opdracht.

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"

Na het genereren van het JWT-token moeten we de volgende opdracht uitvoeren om het TIFF-afbeeldingsframe te extraheren.

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

Conclusie

Op dit punt hebben we alle nodige details geleerd over het extraheren van afbeeldingen uit tiff-bestanden. We hebben de mogelijkheid onderzocht om TIFF-frames te extraheren met Java Java-codefragment of via cURL-opdrachten. Een andere manier om de veelbelovende functies van API te testen is via SwaggerUI en als je de broncode van de SDK wilt wijzigen, kun je deze downloaden van GitHub (al onze Cloud SDK’s zijn ontwikkeld onder MIT licentie).

Desalniettemin is de Productdocumentatie een geweldige informatiebron om meer te weten te komen over andere opwindende functies die door de API worden aangeboden. Ten slotte, als u problemen ondervindt tijdens het gebruik van de API, kunt u overwegen ons te benaderen voor een snelle oplossing via gratis productondersteuningsforum.

gerelateerde artikelen

Bezoek de volgende links voor meer informatie over: