Công cụ cây đũa thần Java

Aspose.Imaging for Java là một thư viện mạnh mẽ và linh hoạt cung cấp cho các nhà phát triển nhiều chức năng để làm việc với hình ảnh. Một trong những tính năng chính được thư viện cung cấp là công cụ Magic Wand, cho phép lựa chọn chính xác và hiệu quả các vùng trong hình ảnh dựa trên độ tương tự màu sắc. Trong bài đăng trên blog này, chúng ta sẽ khám phá cách sử dụng công cụ Magic Wand trên một hình ảnh trong Java.

Công cụ chiếc đũa thần

Công cụ Magic Wand là một tính năng hữu ích được cung cấp trong phần mềm chỉnh sửa hình ảnh, chẳng hạn như Adobe Photoshop. Nó được sử dụng để chọn các vùng có màu hoặc tông màu tương tự trong hình ảnh. Công cụ này hoạt động bằng cách nhấp vào một điểm cụ thể trong hình ảnh và tự động chọn các vùng liền kề có giá trị màu hoặc tông màu tương tự dựa trên cài đặt dung sai. Hãy xem cách chúng ta có thể sử dụng công cụ Magic Wand theo chương trình trong các ứng dụng Java.

Công cụ cây đũa thần cho Java

Chúng tôi sẽ sử dụng công cụ Magic Wand được cung cấp bởi Aspose.Imaging for Java - một API cho phép các nhà phát triển làm việc với nhiều định dạng hình ảnh khác nhau trong các ứng dụng Java của họ. Nó cho phép thực hiện một loạt các tác vụ liên quan đến xử lý và thao tác hình ảnh, chẳng hạn như chỉnh sửa, chuyển đổi, nén và điều chỉnh màu sắc.

Để cài đặt Aspose.Imaging for Java, hãy sử dụng các cấu hình Maven sau hoặc tải xuống tệp JAR.

<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>23.10</version>
    <classifier>jdk16</classifier>
</dependency>

Sử dụng công cụ Magic Wand trong Java

Lớp MagicWandTool cho phép bạn thực hiện các thao tác chọn, hợp, đảo ngược và trừ trên một hình ảnh. Khi chọn một vùng màu cụ thể trong ảnh, bạn cần chỉ định tọa độ X và Y trong vùng mong muốn. Sau đó, công cụ Magic Wand sẽ đánh giá tông màu và màu sắc của pixel được chọn so với các pixel lân cận. Khi phát hiện thấy sự tương đồng, công cụ sẽ tạo mặt nạ cho vùng đã chọn.

Bằng cách sử dụng lớp MagicWandSettings, bạn có thể đặt dung sai. Giá trị dung sai cao hơn có nghĩa là phạm vi màu rộng hơn sẽ được đưa vào vùng chọn, trong khi giá trị dung sai thấp hơn sẽ giới hạn lựa chọn ở phạm vi hẹp hơn của các màu tương tự.

Sau đây là các bước để sử dụng công cụ Magic Wand trong Java.

  • Đầu tiên, tải hình ảnh dưới dạng RasterImage bằng phương thức Image.load.
  • Sau đó, tạo một phiên bản của lớp MagicWandSettings và khởi tạo nó với tọa độ tham chiếu X và Y.
  • Tạo mặt nạ mới bằng công cụ Magic Wand dựa trên tông màu và màu sắc của pixel bằng phương pháp MagicWandTool.select.
  • Sử dụng các chức năng Magic Wand mong muốn trên hình ảnh.
  • Gọi phương thức apply() để áp dụng mặt nạ.
  • Cuối cùng, lưu hình ảnh bằng phương thức Image.save().

Xem tài liệu tham khảo về các lớp và phương thức được sử dụng trong các bước trên.

Đoạn mã sau đây cho thấy cách sử dụng công cụ Magic Wand trên một hình ảnh trong Java.

import com.aspose.imaging.Image;
import com.aspose.imaging.RasterImage;
import com.aspose.imaging.magicwand.*;
import com.aspose.imaging.magicwand.imagemasks.*;

// lấy đường dẫn của dữ liệu đầu vào
String templatesFolder = System.getenv("DATA_PATH");
// lấy đường dẫn đầu ra
String outputFolder = System.getenv("OUT_PATH");

if (templatesFolder == null)
   templatesFolder = "data";

if (outputFolder == null)
  outputFolder = "out";


try (RasterImage image = (RasterImage)Image.load(templatesFolder + "/template.png"))
{
	// Tạo mặt nạ mới bằng công cụ cây đũa thần dựa trên tông màu và màu sắc của pixel {845, 128}
	MagicWandTool.select(image, new MagicWandSettings(10, 10))
		// Liên kết mặt nạ hiện có với mặt nạ được chỉ định được tạo bằng công cụ cây đũa thần
		.union(new MagicWandSettings(30, 30))
		// Đảo ngược mặt nạ hiện có
		.invert()
		// Trừ mặt nạ được chỉ định được tạo bằng công cụ cây đũa thần khỏi mặt nạ hiện có 
		.subtract(new MagicWandSettings(50, 50) {{ setThreshold(69); }})
		// Lần lượt trừ bốn mặt nạ hình chữ nhật được chỉ định khỏi mặt nạ hiện có
		.subtract(new RectangleMask(0, 0, 50, 50))
		// Mặt nạ lông vũ với các cài đặt được chỉ định
		.getFeathered(new FeatheringSettings() {{ setSize(3); }})
		// Áp dụng mặt nạ cho hình ảnh
		.apply();
	image.save(outputFolder + "/result.png");
}

Nhận giấy phép miễn phí

Nhận giấy phép tạm thời miễn phí và đánh giá công cụ Java Magic Wand mà không có bất kỳ giới hạn nào.

Phần kết luận

Trong bài đăng trên blog này, chúng tôi đã khám phá công cụ Magic Wand trong Java bằng cách sử dụng thư viện xử lý hình ảnh mạnh mẽ cho phép các nhà phát triển thực hiện lựa chọn hình ảnh dựa trên độ tương tự màu sắc. Bằng cách làm theo các bước được nêu trong hướng dẫn này, bạn có thể tích hợp liền mạch công cụ Magic Wand vào các ứng dụng Java của mình và mở khóa nhiều khả năng thao tác và chỉnh sửa hình ảnh.

Aspose.Imaging for Java cung cấp một bộ tính năng toàn diện để làm việc với hình ảnh. Bạn có thể khám phá thêm về thư viện bằng cách sử dụng tài liệu. Ngoài ra, bạn có thể đăng câu hỏi của mình trên diễn đàn của chúng tôi.

Xem thêm