Java: Hiệu ứng trộn (Blend)


Khóa học qua video:
Lập trình Python All Lập trình C# All SQL Server All Lập trình C All Java PHP HTML5-CSS3-JavaScript
Đăng ký Hội viên
Tất cả các video dành cho hội viên

Nói chung, trộn (blend) có nghĩa là hỗn hợp của hai hoặc nhiều thứ hoặc chất khác nhau. Nếu chúng ta áp dụng hiệu ứng trộn, nó sẽ lấy các pixel của hai đầu vào khác nhau. Điều này sẽ được thực hiện tại cùng một vị trí và nó tạo ra kết quả đầu ra kết hợp dựa trên chế độ trộn.

Ví dụ, nếu chúng ta vẽ hai đối tượng, đối tượng trên cùng che đối tượng dưới cùng. Khi áp dụng hiệu ứng trộn, các pixel của hai đối tượng trong vùng chồng chéo được kết hợp và hiển thị dựa trên chế độ đầu vào.

Đã áp dụng hiệu ứng hỗn hợp

Lớp có tên Blend của gói javafx.scene.effect đại diện cho hiệu ứng trộn, lớp này chứa bốn thuộc tính, đó là:

  • bottomInput - Thuộc tính này thuộc loại Effect và nó đại diện cho đầu vào dưới cùng của hiệu ứng trộn.
  • topInput - Thuộc tính này thuộc loại Effect và nó đại diện cho đầu vào hàng đầu cho hiệu ứng pha trộn.
  • opacity - Thuộc tính này thuộc loại double và nó đại diện cho giá trị độ mờ được điều chỉnh với đầu vào trên cùng.
  • mode - Thuộc tính này thuộc loại BlendMode và nó đại diện cho chế độ được sử dụng để trộn hai đầu vào với nhau.

Thí dụ

Sau đây là một ví dụ minh họa hiệu ứng pha trộn. Ở đây, chúng tôi đang vẽ một vòng tròn với màu NÂU, trên đầu của nó là Đầu vào màu BLUEVIOLET.

Chúng tôi đã áp dụng hiệu ứng hòa trộn chọn một chế độ nhân Trong vùng chồng chéo, màu sắc của hai đối tượng được nhân lên và hiển thị.

Lưu mã này trong một tệp với tên BlendEffectExample.java .

import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.stage.Stage;
import javafx.scene.shape.Circle; 
import javafx.scene.effect.Blend; 
import javafx.scene.effect.BlendMode; 
import javafx.scene.effect.ColorInput; 
import javafx.scene.paint.Color; 
         
public class BlendEffectExample extends Application { 
   @Override 
   public void start(Stage stage) { 
      //Drawing a Circle 
      Circle circle = new Circle();       
      
      //Setting the center of the Circle
      circle.setCenterX(75.0f); 
      circle.setCenterY(75.0f); 
      
      //Setting radius of the circle 
      circle.setRadius(30.0f); 
      
      //Setting the fill color of the circle 
      circle.setFill(Color.BROWN); 
       
      //Instantiating the blend class 
      Blend blend = new Blend(); 
      
      //Preparing the to input object 
      ColorInput topInput = new ColorInput(35, 30, 75, 40, Color.BLUEVIOLET); 
      
      //setting the top input to the blend object 
      blend.setTopInput(topInput); 
      
      //setting the blend mode 
      blend.setMode(BlendMode.SRC_OVER); 
       
      //Applying the blend effect to circle  
      circle.setEffect(blend);       
         
      //Creating a Group object  
      Group root = new Group(circle); 
         
      //Creating a scene object 
      Scene scene = new Scene(root, 150, 150);  
      
      //Setting title to the Stage 
      stage.setTitle("Blend Example"); 
         
      //Adding scene to the stage 
      stage.setScene(scene); 
         
      //Displaying the contents of the stage 
      stage.show(); 
   }      
   public static void main(String args[]){ 
      launch(args); 
   } 
}   

Biên dịch và thực thi tệp java đã lưu từ dấu nhắc lệnh bằng các lệnh sau.

javac BlendEffectExample.java 
java BlendEffectExample

Khi thực thi, chương trình trên tạo ra một cửa sổ JavaFX như hình dưới đây.

Ví dụ về hiệu ứng hỗn hợp

Chế độ trộn

STT Chế độ và Mô tả Kết quả
1

THÊM VÀO

Trong chế độ này, các giá trị màu của đầu vào trên cùng và dưới cùng được thêm vào và hiển thị.

Thêm chế độ
2

NHÂN

Trong chế độ này, các giá trị màu của đầu vào trên cùng và dưới cùng được nhân lên và hiển thị.

Chế độ NHIỀU
3

SỰ KHÁC BIỆT

Trong chế độ này, trong số các giá trị màu của đầu vào trên cùng và dưới cùng, giá trị tối hơn được trừ đi giá trị sáng hơn và hiển thị.

Chế độ KHÁC BIỆT
4

ĐỎ

Trong chế độ này, các thành phần màu đỏ của đầu vào dưới cùng được thay thế bằng các thành phần màu đỏ của đầu vào trên cùng.

Chế độ RED
5

MÀU XANH DA TRỜI

Trong chế độ này, các thành phần màu xanh lam của đầu vào dưới cùng được thay thế bằng các thành phần màu xanh lam của đầu vào trên cùng.

Chế độ BLUE
6

MÀU XANH LÁ

Trong chế độ này, các thành phần màu xanh lá cây của đầu vào dưới cùng được thay thế bằng các thành phần màu xanh lá cây của đầu vào trên cùng.

CHẾ ĐỘ XANH
7

LOẠI TRỪ

Trong chế độ này, các thành phần màu của hai đầu vào được nhân lên và nhân đôi. Sau đó, chúng được trừ khỏi tổng các thành phần màu của đầu vào dưới cùng. Kết quả sau đó được hiển thị.

Chế độ LOẠI TRỪ
8

COLOR_BURN

Trong chế độ này, nghịch đảo của thành phần màu đầu vào dưới cùng được chia cho thành phần màu đầu vào trên cùng. Do đó, giá trị thu được được đảo ngược và hiển thị.

MÀU SẮC
9

MÀU DODGE

Trong chế độ này, các thành phần màu đầu vào dưới cùng được chia cho nghịch đảo của các thành phần màu đầu vào trên cùng và do đó giá trị thu được sẽ được đảo ngược và hiển thị.

MÀU DODGE
10

LIGHTEN

Trong chế độ này, thành phần màu sáng hơn, trong số cả hai đầu vào được hiển thị.

Làm sáng
11

DARKEN

Trong chế độ này, thành phần màu tối hơn, trong số các đầu vào trên cùng và dưới cùng được hiển thị.

Làm tối
12

MÀN

Trong chế độ này, các thành phần màu của đầu vào trên cùng và dưới cùng được đảo ngược, nhân lên và do đó giá trị thu được sẽ được đảo ngược và hiển thị.

Màn
13

HẾT

Trong chế độ này, dựa trên màu đầu vào dưới cùng, các thành phần màu của hai giá trị đầu vào được nhân hoặc sàng lọc và kết quả được hiển thị.

Lớp phủ
14

ĐÈN RẤT SÁNG

Trong chế độ này, dựa trên màu đầu vào trên cùng, các thành phần màu của hai giá trị đầu vào được nhân hoặc sàng lọc và kết quả được hiển thị.

Đèn rất sáng
15

SOFT_LIGH

Trong chế độ này, dựa trên màu đầu vào trên cùng, các thành phần màu của hai giá trị đầu vào được làm mềm hoặc sáng hơn và kết quả được hiển thị.

Ánh sáng mềm mại
16

SRC_ATOP

Trong chế độ này, vùng phủ sóng được lấp đầy bằng thành phần màu của đầu vào phía dưới. Trong khi khu vực không tráng men được lấp đầy bởi thành phần màu của đầu vào trên cùng.

SRC ATOP
17

SRC_OVER

Trong chế độ này, đầu vào trên cùng được vẽ trên đầu vào dưới cùng.

SRC HẾT
 
» Tiếp: Hiệu ứng nở (Bloom)
« Trước: Hiệu ứng nhập ảnh (ImageInput)
Khóa học qua video:
Lập trình Python All Lập trình C# All SQL Server All Lập trình C All Java PHP HTML5-CSS3-JavaScript
Đăng ký Hội viên
Tất cả các video dành cho hội viên
Copied !!!