Phần 8 (tt) : Hiệu ứng - Effect
13. ColorInput :
ColorInput là 1 hiệu ứng đơn giản ,nhiệm vụ của nó là tô đầy 1 vùng hình chữ nhật với màu được chỉ ra, giống như bạn sử dụng Rectangle class để vẽ hình chữ nhật . Nhưng Rectangle không thể làm input cho các hiệu ứng khác.
ColorInput là hiệu ứng đặc biệt, bởi nó không có bất cứ input nào và nó được dùng làm input cho các hiệu ứng khác.
ColorInput tạo ra vùng hình chữ nhật với màu xanh lá cây
a.Các thuộc tính :
kiểu
|
Tên thuộc tính
|
Giá trị mặc định
|
Miêu tả
|
DoubleProperty
|
height
|
0.0
|
Chiều cao hình chữ nhật
|
DoubleProperty
|
width
|
0.0
|
Chiều rộng hình chữ nhật
|
DoubleProperty
|
x
|
0.0
|
Tọa độ x của góc trên bên trái
|
DoubleProperty
|
y
|
0.0
|
Tọa độ y của góc trên bên trái
|
Paint
|
paint
|
Color.RED
|
Màu của hình chữ nhật
|
b. Cách sử dụng :
// Tạo đối tượng ColorInput với giá trị thuộc tính mặc định
ColorInput colorInput = new ColorInput();
// Tạo đối tượng ColorInput tại tọa độ x=20,y=30, width = 100, height=50, paint = Color.Blue
ColorInput colorInput = new ColorInput(20,30,100,50,Color.Blue);
|
c. Một số phương thức của ColorInput :
kiểu trả về
|
Phương thức
|
Miêu tả
|
void
|
setHeight(double value)
|
Thiết lập giá trị thuộc tính height
|
double
|
getHeight()
|
Trả về giá trị thuộc tính height
|
void
|
setWidth(double value)
|
Thiết lập giá trị thuộc tính width
|
double
|
getWidth()
|
Trả về giá trị thuộc tính width
|
void
|
setX(double value)
|
Thiết lập giá trị thuộc tính x
|
double
|
getX()
|
Trả về giá trị thuộc tính x
|
void
|
setY(double value)
|
Thiết lập giá trị thuộc tính y
|
double
|
getY()
|
Trả về giá trị thuộc tính y
|
void
|
setPaint(double value)
|
Thiết lập giá trị thuộc tính paint
|
Paint
|
getPaint()
|
Trả về giá trị thuộc tính paint
|
14. ImageInput :
ImageInput tương tự như ColorInput, nhiệm vụ của nó là tô đầy 1 vùng hình chữ nhật với một image được chỉ ra.
ImageInput cũng không có bất cứ input nào và nó được dùng làm input cho các hiệu ứng khác.
a.Các thuộc tính :
kiểu
|
Tên thuộc tính
|
Giá trị mặc định
|
Miêu tả
|
DoubleProperty
|
x
|
0.0
|
Tọa độ x của góc trên bên trái
|
DoubleProperty
|
y
|
0.0
|
Tọa độ y của góc trên bên trái
|
Image
|
source
|
null
|
Nguồn ảnh
|
b. Cách sử dụng :
// Tạo đối tượng ImageInput với giá trị thuộc tính mặc định
ImageInput imageInput = new ImageInput();
// Tạo đối tượng ImageInput với nguồn ảnh
ImageInput imageInput = new ImageInput(new Image(“graphics/background.jpg”));
// Tạo đối tượng ImageInput với nguồn ảnh , tọa độ x = 20, y = 10
ImageInput imageInput = new ImageInput new Image(“graphics/background.jpg”),20,10);
|
c. Một số phương thức của ImageInput :
kiểu trả về
|
Phương thức
|
Miêu tả
|
void
|
setX(double value)
|
Thiết lập giá trị thuộc tính x
|
double
|
getX()
|
Trả về giá trị thuộc tính x
|
void
|
setY(double value)
|
Thiết lập giá trị thuộc tính y
|
double
|
getY()
|
Trả về giá trị thuộc tính y
|
void
|
setSource(Image value)
|
Thiết lập giá trị thuộc tính source
|
Image
|
getSource()
|
Trả về giá trị thuộc tính source
|
15. Blend effect:
Blend là sự pha trộn màu sắc 2 pixel cùng tọa độ từ 2 input để cho ra 1 pixel xuất hiện trong output. Blend effect nhận 2 input và pha trộn các pixel chồng lấp nhau theo một “chế độ hòa trộn màu sắc” được định nghĩa trước – “chế độ hòa trộn màu sắc” này được gọi là BlendMode (BlendMode được giới thiệu chi tiết trong trang sau).
a.Các thuộc tính :
kiểu
|
Tên thuộc tính
|
Giá trị mặc định
|
Miêu tả
|
Effect
|
topInput
|
null
|
Input nằm trên
|
Effect
|
bottomInput
|
null
|
Input nằm dưới
|
BlendMode
|
mode
|
BlendMode.SRC_OVER
|
Chế độ hòa trộn
|
DoubleProperty
|
opacity
|
1.0
|
Chỉ ra độ trong suốt được áp dụng đến top input trước khi áp dụng hiệu ứng blend.
|
b. Cách sử dụng Blend :
// Tạo đối tượng Blend rỗng
Blend blend = new Blend();
// Tạo đối tượng Blend với BlendMode
Blend blend = new Blend(BlendMode.COLOR_BURN);
// Tạo đối tượng Blend với BlendMode và 2 đối tượng của Effect
Blend blend =
new Blend(BlendMode.COLOR_BURN, effectBottomInput, effectTopInput);
|
c. Một số phương thức của Blend:
kiểu trả về
|
Phương thức
|
Miêu tả
|
Effect
|
getBottomInput()
|
trả về đối tượng Effect của bottom input
|
Effect
|
getTopInput()
|
trả về đối tượng Effect của top input
|
BlendMode
|
getMode()
|
trả về chế độ BlendMode mà Blend đang sử dụng.
|
double
|
getOpacity()
|
trả về giá trị độ trong suốt của top input, max= 1.0, min = 0
|
void
|
setBottomInput(Effect value)
|
Chỉ ra input nào làm bottom input
|
void
|
setTopInput(Effect value)
|
Chỉ ra input nào làm top input
|
void
|
setMode(BlendMode value)
|
Chỉ ra chế độ BlendMode
|
void
|
setOpacity(double value)
|
Thiết lập độ trong suốt.
|
Ví dụ : Sử dụng hiệu ứng Blend trên phần chồng lấp nhau của 2 image với opacity dành cho top image là 0.5
Code:
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.effect.Blend;
import javafx.scene.effect.BlendMode;
import javafx.scene.effect.ImageInput;
import javafx.scene.image.Image;
import javafx.stage.Stage;
public class exampleBlend3 extends Application {
public void start(Stage primaryStage) {
// Tạo 2 image
Image image1 = new Image("graphics/background.jpg", 300, 200, true, true);
Image image2 = new Image("graphics/backgroundNature.jpg", 300, 200, true, true);
// Định nghĩa hiệu ứng Blend
Blend blend = new Blend(BlendMode.SRC_OVER);
// Thiết lập BottomInput là image1
blend.setBottomInput(new ImageInput(image1, 10, 20));
// Thiết lập TopInput là image2
blend.setTopInput(new ImageInput(image2, 100, 100));
// Opacity dành cho TopInput là 0.5
blend.setOpacity(0.5);
Group root = new Group();
// Áp dụng hiệu ứng Blend trên Group bởi phương thức setEffect()
root.setEffect(blend);
Scene scene = new Scene(root, 440, 350);
primaryStage.setTitle("Hello World!");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
|
Không có nhận xét nào:
Đăng nhận xét