ändra storlek på bild

Ändra storlek på TIFF-bild med Java

En av de framträdande egenskaperna hos TIFF-filer är dess förmåga att lagra flera bilder (var och en har flera kanaler) som sekventiella bildrutor i en tidsstack eller z-stack av bilder. Nu i den här artikeln kommer vi att förklara stegen för att extrahera en TIFF ram, ändra storlek på den och spara den separat på en lagring. Onlineoperationen för att ändra storlek på bilden tillgodoser nya dimensioner (bredd och höjd) samtidigt som den uppdaterade TIFF-ramen sparas.

Ändra storlek på bild-API

Aspose.Imaging Cloud SDK för Java är vår REST-baserade lösning som gör att du kan redigera, manipulera och omvandla rasterbilder, metafiler och Photoshop till en mängd olika format som stöds. Den erbjuder också funktionen för att manipulera TIFF-bilder, där vi till och med kan arbeta med individuella TIFF-ramar. Nu, för att komma igång med SDK-användningen, måste vi lägga till dess referens i ett Java-projekt. Så lägg till följande detaljer i pom.xml av maven byggprojekt.

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

Nästa steg är att skaffa klientuppgifterna från Cloud Dashboard och om du inte har ett konto över Aspose Cloud Dashboard, skapa ett gratis konto med en giltig e-postadress.

Ändra storlek på bild online i Java

I det här avsnittet kommer vi att använda GetImageFrame API för att utveckla vår TIFF-bildförändring. Vi kommer också att ladda upp bilden till molnlagring och efter uppdatering av bildparametrarna returneras den modifierade bilden som svarsström. Observera att API:et gör att du kan ändra storlek på foton i bulk eller bara ändra storlek på en specifik TIFF-ram med parametern saveOtherFrames.

  • Skapa först ett objekt av ImagingApi med hjälp av personliga klientuppgifter
  • För det andra, läs innehållet i den första TIFF-bilden med metoden readAllBytes(…) och returnera den till byte[] array
  • För det tredje, skapa en instans av klassen UploadFileRequest där vi skickar namnet på TIFF-bilden
  • Ladda nu upp den första TIFF-bilden till molnlagring med metoden uploadFile(…).
  • Nästa steg är att specificera TIFF-ramindex, nya höjd- och breddmått och särskilt TIFF-ramindex
  • Skapa nu ett objekt av GetImageFrameRequest där vi skickar ingången TIFF-bildnamn och ovan definierade egenskaper
  • Anrop getImageFrame(…)-metoden för ImagingAPI-klassen för att erhålla den angivna TIFF-ramen
  • Slutligen, spara den extraherade ramen till den lokala enheten med FileOutputStream-objektet
// Hämta ClientID och ClientSecret från https://dashboard.aspose.cloud/
String clientId = "7ef10407-c1b7-43bd-9603-5ea9c6db83cd";
String clientSecret = "ba7cc4dc0c0478d7b508dd8ffa029845";

// skapa bildobjekt
ImagingApi imageApi = new ImagingApi(clientSecret, clientId);

// ladda den första TIFF-bilden från det lokala systemet
File file1 = new File("TiffSampleImage.tif");
byte[] imageStream = Files.readAllBytes(file1.toPath());
			
// skapa ett filuppladdningsbegäranobjekt
UploadFileRequest uploadRequest = new UploadFileRequest("input.tiff",imageStream,null);
// ladda upp den första TIFF-bilden till molnlagring
imageApi.uploadFile(uploadRequest);

Integer frameId = 0; // Frame number inside TIFF
// ny bredd & höjd på utdragen ram
Integer newWidth = 400;
Integer newHeight = 600;

// Resultat för att endast inkludera den angivna ramen inte andra ramar
Boolean saveOtherFrames = false;

// Skapa ett förfrågningsobjekt för att extrahera tiff-ramar baserat på specificerade detaljer
GetImageFrameRequest getImageFrameRequest = new GetImageFrameRequest("input.tiff", frameId, newWidth, newHeight,
                    null, null, null, null, null, saveOtherFrames, null, null);

// den extraherade ramen returneras i svarsström
byte[] updatedImage = imageApi.getImageFrame(getImageFrameRequest);

// Spara extraherad TIFF-ram på lokal lagring
FileOutputStream fos = new FileOutputStream("/Users/nayyer/Documents/" + "Extracted-TIFF.tiff");
fos.write(updatedImage);
fos.close();
ändra storlek på tiff-ram

Ändra storlek på TIFF Frame Preview

Exempel på TIFF-bilder som används i exemplet ovan kan laddas ner från TiffSampleImage.tiff.

Minska bildstorleken med hjälp av cURL-kommandon

På grund av API:ets REST-arkitektur kan den också nås via cURL-kommandon. Så i det här avsnittet kommer vi att diskutera detaljerna om hur man minskar bildstorleken eller extraherar tiff-ram med speciella dimensioner, med hjälp av cURL-kommandona. Nu är det första steget att generera en JWT-åtkomsttoken (baserat på klientuppgifter) med följande 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 genereringen av JWT-token måste vi utföra följande kommando för att ändra storlek på TIFF-ramen.

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

Slutsats

Den här artikeln har gett enkla men fantastiska detaljer om hur man ändrar storlek på bild (TIFF) med Java. Denna handledning har också förklarat alla steg för att ändra storlek på TIFF-ram med hjälp av cURL-kommandon. Observera att ett annat alternativ för att testa API-funktionerna är via SwaggerUI i en webbläsare. Dessutom, om du är intresserad av att ändra källkoden för SDK:n, kan den laddas ner från GitHub, eftersom den är publicerad under MIT-licens.

Ändå är Produktdokumentationen en fantastisk informationskälla för att lära dig alla nödvändiga detaljer om andra spännande funktioner i API:et. Slutligen, om du stöter på problem när du använder API:t kan du överväga att kontakta oss för en snabb lösning via det kostnadsfria produktsupportforumet.

relaterade artiklar

Besök följande länkar för att lära dig mer om: