Cắt ảnh

Cắt ảnh trực tuyến bằng Java Cloud SDK

Hàng ngày, chúng tôi tạo ra một bộ sưu tập hình ảnh khổng lồ thông qua máy ảnh kỹ thuật số, máy quét, v.v. và phần lớn chúng ở định dạng JPG, PNG, GIF, TIFF v.v. Bây giờ chúng ta có thể chụp các đối tượng/yếu tố không cần thiết trong ảnh. Vì vậy, chúng tôi thường có yêu cầu cắt ảnh để xóa chủ thể không mong muốn hoặc chi tiết không liên quan khỏi ảnh. Chúng tôi có thể có yêu cầu thay đổi tỷ lệ khung hình của hình ảnh hoặc cải thiện bố cục tổng thể của hình ảnh. Vì vậy, trong bài viết này, chúng ta sẽ tìm hiểu chi tiết về cách Cắt ảnh bằng Java Cloud SDK.

API cắt hình ảnh

Để cắt ảnh trong ứng dụng Java, chúng ta sẽ sử dụng Aspose.Imaging Cloud SDK for Java. API cho phép bạn chỉ định vị trí cũng như kích thước của hình chữ nhật cắt xén. Sau khi thao tác cắt ảnh hoàn tất, chúng ta có thể lưu ảnh đầu ra ở cùng định dạng hoặc sử dụng đòn bẩy để lưu ảnh đã cắt ở định dạng khác. Vui lòng truy cập liên kết sau để xem danh sách các định dạng được hỗ trợ. Bây giờ để bắt đầu, bước đầu tiên là thêm tham chiếu của nó vào dự án java bằng cách đưa thông tin sau vào pom.xml (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>

Sau khi dự án được thiết lập, chúng tôi cần lấy thông tin đăng nhập của khách hàng từ Bảng điều khiển đám mây. Bây giờ, nếu bạn chưa có tài khoản trên Aspose Cloud Dashboard, vui lòng tạo một tài khoản miễn phí thông qua địa chỉ email hợp lệ. Giờ hãy đăng nhập bằng tài khoản mới tạo và tra cứu/tạo Client ID và Client Secret tại Aspose Cloud Dashboard.

Cắt ảnh bằng Java

Hãy khám phá các chi tiết về cách chúng tôi có thể tải một hình ảnh hiện có và cắt hình ảnh trực tuyến. Trước tiên, chúng tôi sẽ cắt PNG/croppng và lưu hình ảnh đã cập nhật ở cùng định dạng. PNG sẽ được tải từ ổ đĩa cục bộ, cắt ảnh trực tuyến và đầu ra kết quả được lưu trong bộ nhớ đám mây. Trong trường hợp chúng tôi không chỉ định tên tệp đầu ra, phản hồi sẽ chứa hình ảnh được truyền phát.

  • Đầu tiên, chúng ta cần tạo một phiên bản ImagingApi dựa trên thông tin xác thực của khách hàng được cá nhân hóa
  • Thứ hai, đọc tệp PNG từ thư mục cục bộ bằng đối tượng Tệp
  • Tạo đối tượng byte[] và đọc tất cả các byte từ tệp bằng phương thức readAllBytes(…)
  • Bây giờ chỉ định kích thước và tọa độ X, Y liên quan đến điểm để bắt đầu thao tác cắt
  • Sau đó, tạo một phiên bản CreateCroppedImageRequest yêu cầu tất cả các tham số trên và tên của hình ảnh kết quả
  • Cuối cùng, cắt ảnh bằng phương thức createCroppedImage(…)
// 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 tập tin từ ổ đĩa cục bộ
File f = new File("PinClipart.png");

// đọc nội dung của hình ảnh PNG thành mảng byte
byte[] bytes = Files.readAllBytes(f.toPath());
			
// chỉ định chiều rộng và chiều cao cho hình ảnh đã cắt
int newWidth = 350;
int newHeight = 350;

// chỉ định điểm bắt đầu cắt xén hình ảnh
int x = 100;
int y = 100;
		    
// tạo yêu cầu cắt hình ảnh trong khi chỉ định tên hình ảnh kết quả
CreateCroppedImageRequest cropRequest = new CreateCroppedImageRequest(bytes, x,y, newWidth, newHeight, null, "Cropped.png", null);

// phương thức gọi để cắt PNG và lưu đầu ra trong bộ nhớ đám mây
imageApi.createCroppedImage(cropRequest);
cắt ảnh

Cắt ảnh trong Java

cắt ảnh

Cắt ảnh xem trước

Cắt ảnh bằng lệnh cURL

Vì các API của chúng tôi được phát triển trên kiến trúc REST, nên chúng tôi cung cấp hai khả năng linh hoạt, tức là có được trải nghiệm thống nhất ngay cả khi gọi các API trên bất kỳ nền tảng nào và truy cập các API bằng các lệnh cURL. Bây giờ để truy cập các API bằng cách sử dụng các lệnh cURL trên thiết bị đầu cuối dòng lệnh, trước tiên chúng ta cần 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"

Khi mã thông báo JWT đã được tạo, vui lòng gọi API CropImage để cắt ảnh được tải từ bộ nhớ đám mây ở định dạng PNG. Bây giờ để lưu hình ảnh đã cắt ở định dạng JPG, chúng tôi chỉ định giá trị JPG dựa trên tham số định dạng. Ảnh cắt kết quả được trả về trong luồng phản hồi.

curl -v -X GET "https://api.aspose.cloud/v3.0/imaging/image1.jpg/crop?x=50&y=50&width=200&height=200&format=JPG" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>"
-o "cropped.jpg"

Sự kết luận

Đến cuối bài viết này, chúng ta đã biết các bước về cách cắt ảnh bằng đoạn mã Java. Đồng thời, chúng tôi cũng đã khám phá tùy chọn cắt hình ảnh trực tuyến bằng các lệnh cURL. Ngoài thao tác cắt ảnh, bạn có thể khám phá Tài liệu sản phẩm để tìm hiểu về các tính năng thú vị khác do API cung cấp. Trước khi làm việc với đoạn mã, bạn có thể khám phá các tính năng API trong trình duyệt thông qua Tham khảo API swagger.

Tuy nhiên, chúng tôi cung cấp sự linh hoạt hoàn toàn cho người dùng của mình bằng cách cho phép họ tải xuống mã nguồn hoàn chỉnh của API xử lý hình ảnh từ GitHub (được xuất bản theo giấy phép MIT). Trong trường hợp bạn gặp phải bất kỳ sự cố nào 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í]9.

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