Een van die prominente kenmerke van TIFF-lêers is sy vermoë om veelvuldige beelde (elk met veelvuldige kanale) as opeenvolgende rame in ’n tydstapel of z-stapel beelde te stoor. Nou in hierdie artikel gaan ons die stappe verduidelik om ’n TIFF-raam te onttrek, die grootte daarvan te verander en dit afsonderlik op ’n stoor te stoor. Die aanlyn-aanpassing van die beeldgrootte maak voorsiening vir nuwe afmetings (breedte en hoogte) terwyl die opgedateerde TIFF-raam gestoor word.
- Verander die grootte van beeld-API
- Verander die grootte van die beeld aanlyn in Java
- Verminder beeldgrootte met behulp van cURL-opdragte
Verander die grootte van beeld-API
Aspose.Imaging Cloud SDK for Java is ons REST-gebaseerde oplossing wat jou in staat stel om rasterbeelde, metafile en Photoshop na ’n verskeidenheid Ondersteunde formate programmaties te redigeer, te manipuleer en te transformeer. Dit bied ook die funksie om TIFF-beelde te manipuleer, waar ons selfs aan individuele TIFF-rame kan werk. Nou, om met die SDK-gebruik te begin, moet ons die verwysing daarvan in ’n Java-projek byvoeg. So, voeg asseblief die volgende besonderhede by in pom.xml van maven bou tipe projek.
<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>
Die volgende stap is om die kliëntbewyse van Cloud Dashboard te verkry en as jy nie ’n rekening oor Aspose Cloud Dashboard het nie, skep asseblief ’n gratis rekening met ’n geldige e-posadres.
Verander die grootte van die beeld aanlyn in Java
In hierdie afdeling gaan ons GetImageFrame API gebruik om ons TIFF-beeldveranderaar te ontwikkel. Ons sal ook die prent na wolkberging oplaai en na die opdatering van die prentparameters word die gewysigde prent in reaksiestroom teruggestuur. Neem asseblief kennis dat die API jou in staat stel om foto’s grootmaat te verander of die grootte van slegs ’n spesifieke TIFF-raam te verander met behulp van saveOtherFrames-parameter.
- Skep eerstens ’n voorwerp van ImagingApi met behulp van gepersonaliseerde kliëntbewyse
- Tweedens, lees die inhoud van die eerste TIFF-prent deur die readAllBytes(…)-metode te gebruik en stuur dit terug na byte[]-skikking
- Derdens, skep ’n instansie van UploadFileRequest-klas waar ons die naam van TIFF-beeld deurgee
- Laai nou die eerste TIFF-prent op na wolkberging met die uploadFile(…)-metode
- Die volgende stap is om die TIFF-raamindeks, nuwe hoogte- en breedteafmetings en spesifieke TIFF-raamindeks te spesifiseer
- Skep nou ’n objek van GetImageFrameRequest waar ons die invoer TIFF-beeldnaam en bogenoemde eienskappe deurgee
- Roep die getImageFrame(…)-metode van ImagingAPI-klas om die gespesifiseerde TIFF-raam te verkry
- Stoor ten slotte die onttrekte raam na plaaslike skyf met behulp van FileOutputStream-objek
// Kry ClientID en ClientSecret vanaf https://dashboard.aspose.cloud/
String clientId = "7ef10407-c1b7-43bd-9603-5ea9c6db83cd";
String clientSecret = "ba7cc4dc0c0478d7b508dd8ffa029845";
// skep beeldobjek
ImagingApi imageApi = new ImagingApi(clientSecret, clientId);
// laai eerste TIFF-beeld vanaf plaaslike stelsel
File file1 = new File("TiffSampleImage.tif");
byte[] imageStream = Files.readAllBytes(file1.toPath());
// skep lêer oplaai versoek voorwerp
UploadFileRequest uploadRequest = new UploadFileRequest("input.tiff",imageStream,null);
// laai eerste TIFF-prent op na Wolkberging
imageApi.uploadFile(uploadRequest);
Integer frameId = 0; // Frame number inside TIFF
// nuwe breedte en hoogte van uitgehaalde raam
Integer newWidth = 400;
Integer newHeight = 600;
// Resultaat om slegs die gespesifiseerde raam in te sluit nie ander rame nie
Boolean saveOtherFrames = false;
// Skep 'n versoekvoorwerp om tiff-rame te onttrek gebaseer op gespesifiseerde besonderhede
GetImageFrameRequest getImageFrameRequest = new GetImageFrameRequest("input.tiff", frameId, newWidth, newHeight,
null, null, null, null, null, saveOtherFrames, null, null);
// die onttrekte raam word in reaksiestroom teruggestuur
byte[] updatedImage = imageApi.getImageFrame(getImageFrameRequest);
// Stoor onttrekte TIFF-raam op plaaslike berging
FileOutputStream fos = new FileOutputStream("/Users/nayyer/Documents/" + "Extracted-TIFF.tiff");
fos.write(updatedImage);
fos.close();
Die voorbeeld TIFF-beelde wat in die bostaande voorbeeld gebruik word, kan afgelaai word vanaf TiffSampleImage.tiff.
Verminder beeldgrootte met behulp van cURL-opdragte
As gevolg van die REST-argitektuur van die API, kan dit ook verkry word via cURL-opdragte. So in hierdie afdeling gaan ons die besonderhede bespreek oor hoe om beeldgrootte te verminder of tiff-raam met spesifieke afmetings te onttrek deur die cURL-opdragte te gebruik. Nou, die eerste stap is om ’n JWT-toegangtoken te genereer (gebaseer op kliëntgeloofsbriewe) deur die volgende opdrag te gebruik.
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 die generering van die JWT-token, moet ons die volgende opdrag uitvoer om die grootte van die TIFF-raam te verander.
curl -v -X GET "https://api.aspose.cloud/v3.0/imaging/input.tiff/frames/0?newWidth=400&newHeight=600&saveOtherFrames=false" \
-H "accept: application/json" \
-H "authorization: Bearer <JWT Token>"
-o ResizedFrame.tiff
Afsluiting
Hierdie artikel het eenvoudige maar wonderlike besonderhede verskaf oor hoe om die grootte van prente (TIFF) met Java te verander. Hierdie handleiding het ook al die stappe verduidelik om die grootte van TIFF-raam te verander met behulp van cURL-opdragte. Neem asseblief kennis dat ’n ander opsie om die API-vermoëns te toets is via SwaggerUI binne ’n webblaaier. Ook, as jy belangstel om die bronkode van die SDK te wysig, kan dit afgelaai word vanaf GitHub, aangesien dit onder MIT-lisensie gepubliseer is.
Nietemin is die Produkdokumentasie ’n wonderlike bron van inligting om al die nodige besonderhede oor ander opwindende kenmerke van die API te leer. Laastens, as u probleme ondervind tydens die gebruik van die API, kan u dit oorweeg om ons te nader vir ’n vinnige oplossing via die gratis produkondersteuningsforum.
verwante artikels
Besoek asseblief die volgende skakels om meer te wete te kom oor: