Chủ Nhật, 7 tháng 6, 2015

[JavaFX 8] Phần 8 (tt) : Hiệu ứng - Effect

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