1. Các sản phẩm
  2.   Hình ảnh
  3.   Java
  4.   Apache Commons Imaging
 
  

Xử lý và thao tác hình ảnh Java nguồn mở

Thư viện chỉnh sửa và thao tác hình ảnh Java nguồn mở hàng đầu cho phép đọc, ghi, thao tác và chuyển đổi các định dạng được sử dụng rộng rãi như PNG, JPEG, BMP, TIFF, ICO, v.v..

Apache Commons Imaging là gì?

Apache Commons Imaging, trước đây gọi là Sanselan, là một thư viện Java mã nguồn mở mạnh mẽ được phát triển theo dự án Apache Commons. Đây là một phần của dự án Apache Commons rộng hơn và cung cấp cho các nhà phát triển phần mềm một cách hiệu quả để đọc và ghi nhiều định dạng hình ảnh khác nhau mà không cần dựa vào các thư viện bên ngoài. Các nhà phát triển phần mềm có thể xử lý nhiều định dạng hình ảnh khác nhau, đơn giản hóa các tác vụ như đọc và ghi hình ảnh, chuyển đổi sang các định dạng khác, xử lý siêu dữ liệu hình ảnh, kết xuất hình ảnh tùy chỉnh, mô hình màu hình ảnh, thao tác hình ảnh, v.v. Tính linh hoạt của thư viện khiến nó trở nên lý tưởng cho các ứng dụng yêu cầu xử lý hình ảnh mà không cần dựa vào các phụ thuộc bên ngoài. Thư viện cung cấp nhiều bộ lọc hình ảnh, bao gồm làm mờ, làm sắc nét và phát hiện cạnh.

Apache Commons Imaging là một thư viện mạnh mẽ và linh hoạt giúp đơn giản hóa quy trình làm việc với các tệp hình ảnh trong các ứng dụng Java. Đây là một thư viện dựa trên Java hỗ trợ nhiều định dạng hình ảnh như PNG, JPEG, BMP, GIF, TIFF, ICO, v.v. Hơn nữa, nó cung cấp các công cụ để phân tích hình ảnh, bao gồm tính toán histogram, chuyển đổi không gian màu và phân đoạn hình ảnh. Đây là lựa chọn lý tưởng cho các nhà phát triển, nhà nghiên cứu và những người đam mê. Thư viện cung cấp API hiệu quả và dễ sử dụng để thao tác hình ảnh, có thể đặc biệt hữu ích trong các môi trường hạn chế về tài nguyên. Cho dù bạn đang làm việc trên một dự án yêu cầu xử lý hình ảnh hay chỉ muốn thử nghiệm thao tác hình ảnh, Apache Commons Imaging chắc chắn đáng để khám phá.

Previous Next

Bắt đầu với Apache Commons Imaging

Cách được khuyến nghị để cài đặt Apache Commons Imaging là sử dụng Maven Repository. Vui lòng sử dụng lệnh sau để cài đặt suôn sẻ.

Kho lưu trữ Maven cho Apache Commons Imaging

 

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

//Define Aspose.PDF for Java API Dependency

<dependencies>
	<dependency>
	<groupId>org.apache.commons</groupId>
	<artifactId>commons-imaging</artifactId>
	<version>1.0.0-alpha5</version>
	</dependency>
</dependencies>

Cài đặt Apache Commons Imaging qua GitHub

go get -u https://github.com/apache/commons-imaging.git 

Bạn có thể tải xuống thư viện trực tiếp từ trang sản phẩm GitHub

Chuyển đổi hình ảnh bên trong ứng dụng java

Các sơ đồ được lưu trữ ở một định dạng (ví dụ: PNG) có thể cần được chuyển đổi sang một định dạng khác (ví dụ: BMP hoặc JPEG) vì mục đích tương thích hoặc tối ưu hóa. Apache Commons Imaging cung cấp các tính năng chuyển đổi, cho phép các nhà phát triển chuyển đổi nhiều định dạng tệp hình ảnh giữa các định dạng được hỗ trợ một cách dễ dàng. Ví dụ sau đây cho thấy các nhà phát triển phần mềm có thể dễ dàng chuyển đổi tệp PNG sang định dạng BMP như thế nào. Quá trình này rất đơn giản và có thể xử lý các chuyển đổi giữa bất kỳ định dạng nào được hỗ trợ, khiến nó trở nên lý tưởng cho các ứng dụng cần lưu hình ảnh ở nhiều định dạng vì mục đích tương thích.

Làm thế nào để chuyển đổi tệp PNG sang định dạng tệp BMP thông qua Java API?


File inputFile = new File("diagram.png");
BufferedImage image = Imaging.getBufferedImage(inputFile);
File outputFile = new File("converted_image.bmp");
Imaging.writeImage(image, outputFile, ImageFormats.BMP, null);

Xử lý hình ảnh thông qua Thư viện Java

Apache Commons Imaging có thể được sử dụng kết hợp với các thư viện Java khác như BufferedImage để thực hiện các chuyển đổi hình ảnh phổ biến như thay đổi kích thước, cắt xén và chia tỷ lệ. Phương thức Scalr.resize() từ một thư viện xử lý hình ảnh Java khác (imgscalr) được sử dụng để thay đổi kích thước, sau đó lưu hình ảnh đã thay đổi kích thước bằng Apache Commons Imaging. Điều này cho phép tích hợp liền mạch với các thư viện Java khác để xử lý hình ảnh nâng cao.

Làm thế nào để thay đổi kích thước hình ảnh bên trong ứng dụng Java?

BufferedImage originalImage = Imaging.getBufferedImage(new File("sample_image.png"));
BufferedImage resizedImage = Scalr.resize(originalImage, 300); // Resize width to 300px

File outputFile = new File("resized_image.png");
Imaging.writeImage(resizedImage, outputFile, ImageFormats.PNG, null);

Trích xuất siêu dữ liệu hình ảnh thông qua Java API

Một trong những tính năng chính của Apache Commons Imaging là khả năng trích xuất siêu dữ liệu từ hình ảnh bên trong các ứng dụng Java. Đối với sơ đồ, siêu dữ liệu này có thể chứa thông tin hữu ích như ngày tạo, lịch sử sửa đổi hoặc thông tin chi tiết về tác giả. Khả năng này cho phép các nhà phát triển xử lý hình ảnh sơ đồ theo những cách vượt ra ngoài phạm vi hiển thị đơn thuần. Ví dụ sau đây cho thấy cách các nhà phát triển phần mềm có thể trích xuất siêu dữ liệu từ hình ảnh bên trong các ứng dụng Java.

Làm thế nào để trích xuất siêu dữ liệu từ hình ảnh thông qua Java API?

File imageFile = new File("diagram.png");
ImageInfo imageInfo = Imaging.getImageInfo(imageFile);
System.out.println("Format: " + imageInfo.getFormat());
System.out.println("Width: " + imageInfo.getWidth());
System.out.println("Height: " + imageInfo.getHeight());

Kết xuất hình ảnh tùy chỉnh trong ứng dụng Java

Các nhà phát triển phần mềm có thể sử dụng Apache Commons Imaging để tạo hình ảnh ngay lập tức hoặc sửa đổi hình ảnh hiện có bên trong các ứng dụng Java. Bằng cách kết hợp thư viện với Graphics2D gốc của Java, có thể vẽ trên hình ảnh theo chương trình hoặc thêm chú thích. Ví dụ mã sau đây tạo một hình ảnh trống, thêm văn bản vào đó và lưu dưới dạng tệp PNG. Nó chứng minh cách Apache Commons Imaging có thể hoạt động với các API vẽ của Java để tạo hình ảnh từ đầu.

Làm thế nào để tạo hình ảnh từ đầu thông qua Java?

BufferedImage image = new BufferedImage(400, 300, BufferedImage.TYPE_INT_RGB);
Graphics2D graphics = image.createGraphics();
graphics.setPaint(Color.WHITE);
graphics.fillRect(0, 0, image.getWidth(), image.getHeight());

graphics.setPaint(Color.BLACK);
graphics.setFont(new Font("Arial", Font.BOLD, 20));
graphics.drawString("Custom Diagram", 100, 150);

graphics.dispose();
File outputFile = new File("custom_image.png");
Imaging.writeImage(image, outputFile, ImageFormats.PNG, null);
 Tiếng Việt