Cắt hình ảnh trong Java

Trong các bài đăng trên blog trước, chúng tôi đã hướng dẫn bạn cách triển khai các tính năng chỉnh sửa hình ảnh khác nhau như thay đổi kích thước, lậtxoay hình ảnh. Cùng với các tính năng này, tính năng xén ảnh được sử dụng rất nhiều để cắt các vùng không mong muốn trong ảnh. Ngoài ra, bạn cắt ảnh để lấy nét vào một đối tượng cụ thể trong khung hình. Trong bài viết này, bạn sẽ học cách cắt ảnh theo chương trình trong Java. Chúng tôi sẽ trình bày cách cắt một hình ảnh bằng cách sử dụng các giá trị shift hoặc với một hình chữ nhật.

Java API để cắt hình ảnh - Tải xuống miễn phí

Aspose.Imaging for Java là một API chỉnh sửa hình ảnh tuyệt vời cung cấp một loạt các tính năng để thao tác trên hình ảnh. Ngoài ra, nó hỗ trợ nhiều định dạng ảnh raster và vector. Chúng tôi sẽ sử dụng API này để cắt các hình ảnh từ trong ứng dụng Java của chúng tôi. Bạn có thể tải xuống API hoặc cài đặt nó bằng cách sử dụng các cấu hình Maven sau.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository> 

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-imaging</artifactId>
    <version>22.9</version>
</dependency>

Cắt hình ảnh trong Java

Có hai cách để cắt hình ảnh raster: thay đổi giá trị và hình chữ nhật. Trong phương pháp đầu tiên, chúng ta cần cung cấp các giá trị dịch chuyển trái, phải, trên và dưới để cắt hình ảnh. Trong khi đó, ở phương pháp thứ hai, chúng ta xác định một hình chữ nhật để cắt một vùng nhất định của hình ảnh.

Chúng ta hãy xem xét từng phương pháp được đề cập ở trên để cắt hình ảnh trong Java.

Cắt hình ảnh với giá trị Shift trong Java

Sau đây là các bước để cắt một hình ảnh bằng cách sử dụng các giá trị shift trong Java.

  • Đầu tiên, tải hình ảnh vào đối tượng RasterImage bằng phương thức Image.load().
  • Lưu vào bộ nhớ cache của hình ảnh nếu nó không phải.
  • Xác định các giá trị dịch chuyển trái, phải, trên và dưới.
  • Cắt hình ảnh bằng phương pháp RasterImage.crop().
  • Lưu hình ảnh đã cắt bằng phương pháp RasterImage.save().

Mẫu mã sau đây cho thấy cách cắt một hình ảnh trong Java.

// Tải hình ảnh.
try (RasterImage rasterImage = (RasterImage) Image.load("image.jpg")) {
	// Trước khi cắt, hình ảnh nên được lưu vào bộ nhớ đệm để có hiệu suất tốt hơn.
	if (!rasterImage.isCached()) {
		rasterImage.cacheData();
	}

	// Xác định giá trị dịch chuyển cho cả bốn mặt.
	int leftShift = 10;
	int rightShift = 10;
	int topShift = 10;
	int bottomShift = 10;

	// Dựa trên các giá trị dịch chuyển, hãy áp dụng cắt trên hình ảnh. Phương pháp cây trồng sẽ thay đổi
	// hình ảnh bị giới hạn về phía giữa hình ảnh và lưu kết quả vào đĩa.
	rasterImage.crop(leftShift, rightShift, topShift, bottomShift);

	// Lưu hình ảnh đã cắt.
	rasterImage.save("cropped.jpg");
}

Sau đây là hình ảnh đầu vào mà chúng tôi đã sử dụng để cắt xén.

cắt hình ảnh trong Java

Dưới đây là kết quả hình ảnh được cắt.

cắt ảnh trong Java

Cắt ảnh Java bằng Hình chữ nhật

Bạn cũng có thể xác định một hình chữ nhật để cắt vùng mong muốn của hình ảnh. Các bước sau đây minh họa việc cắt ảnh bằng cách sử dụng hình chữ nhật trong Java.

  • Đầu tiên, tải hình ảnh vào đối tượng RasterImage bằng phương thức Image.load().
  • Lưu vào bộ nhớ cache của hình ảnh nếu nó không phải.
  • Tạo một đối tượng Hình chữ nhật và khởi tạo nó với kích thước mong muốn.
  • Cắt hình ảnh bằng phương pháp RasterImage.crop().
  • Lưu hình ảnh đã cắt bằng phương pháp RasterImage.save().

Mẫu mã sau đây cho thấy cách thực hiện cắt ảnh với một hình chữ nhật trong Java.

// Tải hình ảnh.
try (RasterImage rasterImage = (RasterImage) Image.load("image.jpg")) {
	// Trước khi cắt, hình ảnh nên được lưu vào bộ nhớ đệm để có hiệu suất tốt hơn.
	if (!rasterImage.isCached()) {
		rasterImage.cacheData();
	}

	// Tạo một thể hiện của lớp Rectangle với kích thước mong muốn.
	Rectangle rectangle = new Rectangle(20, 20, 20, 20);
	
	// Cắt hình ảnh.
	rasterImage.crop(rectangle);

	// Lưu hình ảnh đã cắt.
	rasterImage.save("cropped.jpg");
}

API cắt ảnh cho Java - Nhận giấy phép miễn phí

Bạn có thể nhận giấy phép tạm thời miễn phí và cắt ảnh mà không bị giới hạn đánh giá.

Sự kết luận

Trong bài này, bạn đã học cách cắt ảnh trong Java. Chúng tôi đã trình bày một số cách để cắt hình ảnh bằng cách sử dụng giá trị shift hoặc hình chữ nhật. Ngoài ra, bạn có thể khám phá thêm về API xử lý ảnh Java bằng tài liệu. Ngoài ra, bạn có thể chia sẻ các thắc mắc của mình với chúng tôi qua diễn đàn của chúng tôi.

Xem thêm