zmiana rozmiaru obrazu

Zmień rozmiar obrazu TIFF za pomocą Java

Jedną z najważniejszych cech plików TIFF jest możliwość przechowywania wielu obrazów (z których każdy ma wiele kanałów) jako sekwencyjne klatki w stosie czasowym lub stosie z obrazów. Teraz w tym artykule wyjaśnimy, jak wyodrębnić ramkę TIFF, zmienić jej rozmiar i zapisać osobno w pamięci masowej. Operacja zmiany rozmiaru obrazu online uwzględnia nowe wymiary (szerokość i wysokość), jednocześnie zapisując zaktualizowaną ramkę TIFF.

Zmień rozmiar interfejsu API obrazu

Aspose.Imaging Cloud SDK for Java to nasze rozwiązanie oparte na REST, umożliwiające programową edycję, manipulowanie i przekształcanie obrazów rastrowych, metaplików i programu Photoshop do różnych obsługiwanych formatów. Oferuje również funkcję manipulowania obrazami TIFF, gdzie możemy nawet pracować na poszczególnych klatkach TIFF. Teraz, aby rozpocząć korzystanie z SDK, musimy dodać jego referencję w projekcie Java. Dodaj więc następujące szczegóły w pom.xml projektu typu kompilacji maven.

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

Następnym krokiem jest uzyskanie poświadczeń klienta z Cloud Dashboard, a jeśli nie masz konta w Aspose Cloud Dashboard, utwórz bezpłatne konto przy użyciu prawidłowego adresu e-mail.

Zmień rozmiar obrazu online w Javie

W tej sekcji użyjemy interfejsu API GetImageFrame do opracowania naszego narzędzia do zmiany rozmiaru obrazu TIFF. Prześlemy również obraz do magazynu w chmurze, a po zaktualizowaniu parametrów obrazu zmodyfikowany obraz zostanie zwrócony w strumieniu odpowiedzi. Należy pamiętać, że interfejs API umożliwia zbiorczą zmianę rozmiaru zdjęć lub zmianę rozmiaru tylko określonej ramki TIFF za pomocą parametru saveOtherFrames.

  • Najpierw utwórz obiekt ImagingApi przy użyciu spersonalizowanych poświadczeń klienta
  • Po drugie, przeczytaj zawartość pierwszego obrazu TIFF metodą readAllBytes(…) i zwróć ją do tablicy byte[]
  • Po trzecie, tworzymy instancję klasy UploadFileRequest, w której przekazujemy nazwę obrazu TIFF
  • Teraz prześlij pierwszy obraz TIFF do magazynu w chmurze za pomocą metody uploadFile(…).
  • Następnym krokiem jest określenie indeksu ramki TIFF, nowych wymiarów wysokości i szerokości oraz konkretnego indeksu ramki TIFF
  • Teraz utwórz obiekt GetImageFrameRequest, w którym przekazujemy wejściową nazwę obrazu TIFF i powyżej zdefiniowane właściwości
  • Wywołaj metodę getImageFrame(…) klasy ImagingAPI, aby uzyskać określoną ramkę TIFF
  • Na koniec zapisz wyodrębnioną ramkę na dysku lokalnym za pomocą obiektu FileOutputStream
// Uzyskaj ClientID i ClientSecret z https://dashboard.aspose.cloud/
String clientId = "7ef10407-c1b7-43bd-9603-5ea9c6db83cd";
String clientSecret = "ba7cc4dc0c0478d7b508dd8ffa029845";

// utwórz obiekt Imaging
ImagingApi imageApi = new ImagingApi(clientSecret, clientId);

// załaduj pierwszy obraz TIFF z systemu lokalnego
File file1 = new File("TiffSampleImage.tif");
byte[] imageStream = Files.readAllBytes(file1.toPath());
			
// utwórz obiekt żądania przesłania pliku
UploadFileRequest uploadRequest = new UploadFileRequest("input.tiff",imageStream,null);
// prześlij pierwszy obraz TIFF do magazynu w chmurze
imageApi.uploadFile(uploadRequest);

Integer frameId = 0; // Frame number inside TIFF
// nowa szerokość i wysokość wyodrębnionej ramki
Integer newWidth = 400;
Integer newHeight = 600;

// Powoduje uwzględnienie tylko określonej klatki, a nie innych ramek
Boolean saveOtherFrames = false;

// Utwórz obiekt żądania, aby wyodrębnić ramki tiff na podstawie określonych szczegółów
GetImageFrameRequest getImageFrameRequest = new GetImageFrameRequest("input.tiff", frameId, newWidth, newHeight,
                    null, null, null, null, null, saveOtherFrames, null, null);

// wyodrębniona ramka jest zwracana w strumieniu odpowiedzi
byte[] updatedImage = imageApi.getImageFrame(getImageFrameRequest);

// Zapisz wyodrębnioną ramkę TIFF w pamięci lokalnej
FileOutputStream fos = new FileOutputStream("/Users/nayyer/Documents/" + "Extracted-TIFF.tiff");
fos.write(updatedImage);
fos.close();
zmiana rozmiaru ramki tiff

Zmień rozmiar podglądu ramki TIFF

Przykładowe obrazy TIFF użyte w powyższym przykładzie można pobrać z TiffSampleImage.tiff.

Zmniejsz rozmiar obrazu za pomocą poleceń cURL

Dzięki architekturze REST API można uzyskać do niego dostęp również za pomocą poleceń cURL. Dlatego w tej sekcji omówimy szczegóły zmniejszania rozmiaru obrazu lub wyodrębniania ramki tiff o określonych wymiarach za pomocą poleceń cURL. Teraz pierwszym krokiem jest wygenerowanie tokena dostępu JWT (na podstawie poświadczeń klienta) za pomocą następującego polecenia.

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"

Po wygenerowaniu tokena JWT musimy wykonać następujące polecenie, aby zmienić rozmiar ramki TIFF.

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

Wniosek

Ten artykuł zawiera proste, ale niesamowite szczegóły dotyczące zmiany rozmiaru obrazu (TIFF) przy użyciu języka Java. W tym samouczku wyjaśniono również wszystkie kroki zmiany rozmiaru ramki TIFF za pomocą poleceń cURL. Należy pamiętać, że inną opcją testowania możliwości interfejsu API jest użycie SwaggerUI w przeglądarce internetowej. Ponadto, jeśli chcesz zmodyfikować kod źródłowy SDK, możesz go pobrać z GitHub, ponieważ jest opublikowany na licencji MIT.

Niemniej jednak Dokumentacja produktu jest niesamowitym źródłem informacji pozwalającym poznać wszystkie niezbędne szczegóły dotyczące innych ekscytujących funkcji interfejsu API. Na koniec, jeśli napotkasz problemy podczas korzystania z interfejsu API, możesz rozważyć skontaktowanie się z nami w celu uzyskania szybkiego rozwiązania za pośrednictwem bezpłatnego forum wsparcia produktu.

Powiązane artykuły

Odwiedź poniższe linki, aby dowiedzieć się więcej o: