thay đổi kích thước hình ảnh

Thay đổi kích thước hình ảnh TIFF bằng Java

Một trong những tính năng nổi bật của tệp TIFF là khả năng lưu trữ nhiều hình ảnh (mỗi hình ảnh có nhiều kênh) dưới dạng các khung liên tiếp trong ngăn xếp thời gian hoặc ngăn xếp hình ảnh z. Bây giờ trong bài viết này, chúng tôi sẽ giải thích các bước để trích xuất khung hình TIFF, thay đổi kích thước và lưu riêng vào bộ lưu trữ. Thao tác thay đổi kích thước hình ảnh trực tuyến phục vụ cho các kích thước mới (chiều rộng và chiều cao) trong khi lưu Khung TIFF đã cập nhật.

Thay đổi kích thước API hình ảnh

Aspose.Imaging Cloud SDK cho Java là giải pháp dựa trên REST của chúng tôi cho phép bạn chỉnh sửa, thao tác và chuyển đổi hình ảnh raster, Siêu tệp và Photoshop theo chương trình sang nhiều Định dạng được hỗ trợ. Nó cũng cung cấp tính năng thao tác với hình ảnh TIFF, nơi chúng tôi thậm chí có thể làm việc trên các khung hình TIFF riêng lẻ. Bây giờ, để bắt đầu sử dụng SDK, chúng ta cần thêm tài liệu tham khảo của nó vào một dự án Java. Vì vậy, vui lòng thêm các chi tiết sau vào tệp pom.xml của dự án kiểu xây dựng 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>

Bước tiếp theo là lấy thông tin đăng nhập của khách hàng từ Cloud Dashboard và nếu bạn không có tài khoản trên Aspose Cloud Dashboard, vui lòng tạo một tài khoản miễn phí bằng địa chỉ email hợp lệ.

Thay đổi kích thước hình ảnh trực tuyến trong Java

Trong phần này, chúng ta sẽ sử dụng API GetImageFrame để phát triển trình thay đổi kích thước ảnh TIFF. Chúng tôi cũng sẽ tải hình ảnh lên bộ nhớ đám mây và sau khi cập nhật các thông số hình ảnh, hình ảnh đã sửa đổi sẽ được trả về trong luồng phản hồi. Xin lưu ý rằng API cho phép bạn thay đổi kích thước hàng loạt ảnh hoặc chỉ thay đổi kích thước một khung TIFF cụ thể bằng cách sử dụng tham số saveOtherFrames.

  • Đầu tiên, tạo một đối tượng của ImagingApi bằng thông tin xác thực ứng dụng khách được cá nhân hóa
  • Thứ hai, đọc nội dung của hình ảnh TIFF đầu tiên bằng phương thức readAllBytes(…) và trả về mảng byte[]
  • Thứ ba, tạo một thể hiện của lớp UploadFileRequest nơi chúng tôi chuyển tên của hình ảnh TIFF
  • Bây giờ hãy tải hình ảnh TIFF đầu tiên lên bộ nhớ đám mây bằng phương thức uploadFile(…)
  • Bước tiếp theo là chỉ định chỉ mục khung TIFF, kích thước chiều cao và chiều rộng mới và chỉ mục khung tiff cụ thể
  • Bây giờ, hãy tạo một đối tượng GetImageFrameRequest nơi chúng tôi chuyển tên hình ảnh TIFF đầu vào và các thuộc tính được xác định ở trên
  • Gọi phương thức getImageFrame(…) của lớp ImagingAPI để lấy khung TIFF đã chỉ định
  • Cuối cùng, lưu khung đã trích xuất vào ổ đĩa cục bộ bằng đối tượng FileOutputStream
// Nhận ClientID và ClientSecret từ https://dashboard.aspose.cloud/
String clientId = "7ef10407-c1b7-43bd-9603-5ea9c6db83cd";
String clientSecret = "ba7cc4dc0c0478d7b508dd8ffa029845";

// tạo đối tượng hình ảnh
ImagingApi imageApi = new ImagingApi(clientSecret, clientId);

// tải hình ảnh TIFF đầu tiên từ hệ thống cục bộ
File file1 = new File("TiffSampleImage.tif");
byte[] imageStream = Files.readAllBytes(file1.toPath());
			
// tạo đối tượng yêu cầu tải tệp lên
UploadFileRequest uploadRequest = new UploadFileRequest("input.tiff",imageStream,null);
// tải hình ảnh TIFF đầu tiên lên bộ nhớ Đám mây
imageApi.uploadFile(uploadRequest);

Integer frameId = 0; // Frame number inside TIFF
// chiều rộng và chiều cao mới của khung được trích xuất
Integer newWidth = 400;
Integer newHeight = 600;

// Kết quả chỉ bao gồm khung được chỉ định chứ không bao gồm các khung khác
Boolean saveOtherFrames = false;

// Tạo một đối tượng yêu cầu để trích xuất các khung tiff dựa trên các chi tiết được chỉ định
GetImageFrameRequest getImageFrameRequest = new GetImageFrameRequest("input.tiff", frameId, newWidth, newHeight,
                    null, null, null, null, null, saveOtherFrames, null, null);

// khung đã trích xuất được trả về trong luồng phản hồi
byte[] updatedImage = imageApi.getImageFrame(getImageFrameRequest);

// Lưu khung TIFF đã trích xuất trên bộ nhớ cục bộ
FileOutputStream fos = new FileOutputStream("/Users/nayyer/Documents/" + "Extracted-TIFF.tiff");
fos.write(updatedImage);
fos.close();
thay đổi kích thước khung tiff

Thay đổi kích thước xem trước khung hình TIFF

Có thể tải xuống các hình ảnh TIFF mẫu được sử dụng trong ví dụ trên từ TiffSampleImage.tiff.

Giảm kích thước hình ảnh bằng lệnh cURL

Do kiến trúc REST của API, nó cũng có thể được truy cập thông qua các lệnh cURL. Vì vậy, trong phần này, chúng ta sẽ thảo luận chi tiết về cách giảm kích thước hình ảnh hoặc trích xuất khung tiff với các kích thước cụ thể, bằng cách sử dụng các lệnh cURL. Bây giờ, bước đầu tiên là tạo mã thông báo truy cập JWT (dựa trên thông tin đăng nhập của khách hàng) bằng cách sử dụng lệnh sau.

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"

Sau khi tạo mã thông báo JWT, chúng ta cần thực hiện lệnh sau để thay đổi kích thước khung 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

Phần kết luận

Bài viết này đã cung cấp các chi tiết đơn giản nhưng tuyệt vời về cách thay đổi kích thước hình ảnh (TIFF) bằng Java. Hướng dẫn này cũng đã giải thích tất cả các bước để thay đổi kích thước khung hình TIFF bằng các lệnh cURL. Xin lưu ý rằng một tùy chọn khác để kiểm tra khả năng của API là thông qua SwaggerUI trong trình duyệt web. Ngoài ra, nếu bạn muốn sửa đổi mã nguồn của SDK, bạn có thể tải xuống mã đó từ GitHub, vì nó được xuất bản theo giấy phép MIT.

Tuy nhiên, Tài liệu sản phẩm là một nguồn thông tin tuyệt vời để tìm hiểu tất cả các chi tiết cần thiết về các tính năng thú vị khác của API. Cuối cùng, trong trường hợp bạn gặp sự cố khi sử dụng API, bạn có thể cân nhắc liên hệ với chúng tôi để được giải quyết nhanh chóng thông qua diễn đàn hỗ trợ sản phẩm miễn phí.

Những bài viết liên quan

Vui lòng truy cập các liên kết sau để tìm hiểu thêm về: