JavaFX - efekty

Efekt to każda czynność poprawiająca wygląd grafiki. W JavaFX efekt to algorytm stosowany na węzłach w celu wizualnego ulepszenia ich wyglądu. Właściwość efektuNode klasa służy do określenia efektu.

W JavaFX można ustawić różne efekty dla węzła, takie jak bloom, blur i glow. Każdy z tych efektów jest reprezentowany przez klasę, a wszystkie te klasy są dostępne w pakiecie o nazwiejavafx.scene.effect.

Stosowanie efektów do węzła

Możesz zastosować efekt do węzła za pomocą setEffect()metoda. Do tej metody musisz przekazać obiekt efektu.

Aby zastosować efekt do węzła, musisz:

  • Utwórz węzeł.

  • Utwórz wystąpienie odpowiedniej klasy efektu, który ma zostać zastosowany.

  • Ustaw właściwości efektu.

  • Zastosuj efekt do węzła za pomocą setEffect() metoda.

Tworzenie węzłów

Przede wszystkim utwórz węzły w aplikacji JavaFX, tworząc instancje ich odpowiednich klas.

Na przykład, jeśli chcesz zastosować efekt blasku do obrazu w aplikacji. Po pierwsze, musisz utworzyć węzeł obrazu, tworząc instancję klasy Image i ustawiając jej widok, jak pokazano poniżej.

//Creating an image 
Image image = new Image("https://www.tutorialspoint.com/green/images/logo.png"); 
       
//Setting the image view 
ImageView imageView = new ImageView(image); 

//Setting the position of the image 
imageView.setX(100); 
imageView.setY(70);  

//setting the fit height and width of the image view 
imageView.setFitHeight(200);
imageView.setFitWidth(400); 

//Setting the preserve ratio of the image view 
imageView.setPreserveRatio(true);

Tworzenie wystąpienia odpowiedniej klasy

Utwórz wystąpienie klasy reprezentującej efekt, który należy zastosować do utworzonego węzła.

Na przykład - aby zastosować efekt blasku, musisz utworzyć wystąpienie Glow klasa, jak pokazano w poniższym polu kodowym -

Glow glow = new Glow();

Ustawianie właściwości efektu

Po utworzeniu instancji klasy należy ustawić właściwości efektu za pomocą jego metod ustawiających.

Na przykład - Aby narysować trójwymiarowe pudełko, musisz podać jego szerokość, wysokość i głębokość. Możesz określić te wartości, używając odpowiednich metod ustawiających, jak pokazano poniżej -

//setting the level property 
glow.setLevel(0.9);

Dodawanie efektu do Node

Na koniec możesz zastosować wymagany efekt do węzła za pomocą setEffect()metoda. Na przykład: Aby ustawić efekt blasku w węźle obrazu, musisz przekazać obiekt klasy Glow do tej metody w następujący sposób -

imageView.setEffect(glow);

JavaFX Effects- Poniższa tabela zawiera listę różnych efektów (klas) udostępnianych przez JavaFX. Te klasy istnieją w pakiecie o nazwiejavafx.scene.effect.

S.Nr Kształt i opis
1 Regulacja koloru

Możesz dostosować kolor obrazu, stosując do niego efekt dopasowania koloru. Obejmuje to dostosowaniehue, saturation, brightness i contrast na każdym pikselu

Klasa o nazwie ColorAdjust pakietu javafx.scene.effect reprezentuje efekt dopasowania koloru.

2 Wejście koloru

Efekt wejścia koloru daje taki sam wynik, jak rysowanie prostokąta i wypełnianie go kolorem. W przeciwieństwie do innych efektów, jeśli ten efekt zostanie zastosowany do dowolnego węzła, wyświetli tylko prostokątne pole (nie węzeł). Ten efekt jest najczęściej używany jako wejście dla innych efektów.

Klasa o nazwie ColorInput pakietu javafx.scene.effect reprezentuje efekt wejścia koloru.

3 Wejście obrazu

Efekt wejścia obrazu w JavaFX po prostu osadza obraz na ekranie JavaFX.

Podobnie jak efekt wejścia koloru (służy do przekazania określonego koloru, prostokątnego obszaru jako danych wejściowych do innego efektu), efekt wejścia obrazu służy do przekazania określonego obrazu jako wejścia do innego efektu.

Klasa o nazwie ImageInput pakietu javafx.scene.effect reprezentuje efekt wejścia obrazu.

4 Mieszanka

Ogólnie rzecz biorąc, mieszanka oznacza mieszaninę dwóch lub więcej różnych rzeczy lub substancji. Jeśli zastosujemy ten efekt mieszania, zajmie on piksele z dwóch różnych wejść, w tym samym miejscu i utworzy połączone dane wyjściowe na podstawieblend mode.

Klasa o nazwie Blend pakietu javafx.scene.effect reprezentuje efekt mieszania.

5 Kwiat

Po zastosowaniu efektu poświaty piksele w niektórych częściach węzła będą świecić.

Klasa o nazwie Bloom pakietu javafx.scene.effect reprezentuje efekt kwitnienia.

6 Poświata

Podobnie jak poświata, efekt Glow sprawia, że ​​podany obraz wejściowy świeci, efekt ten rozjaśnia jasne piksele wejścia.

Klasa o nazwie Glow pakietu javafx.scene.effect reprezentuje efekt blasku.

7 Rozmycie pudełkowe

Po zastosowaniu tego efektu rozmycia do węzła staje się on niejasny. Rozmycie pudełkowe to rodzaj efektu rozmycia zapewnianego przez JavaFX. W tym efekcie, gdy zastosujemy rozmycie do węzła, używany jest prosty filtr pudełkowy.

Klasa o nazwie BoxBlur pakietu javafx.scene.effect reprezentuje efekt rozmycia pudełka.

8 Rozmycie Gaussa

Podobnie jak Box Blur Gaussian jest efektem rozmycia węzłów w JavaFX. Jedyna różnica wGaussian Blur effect polega na tym, że jądro splotu Gaussa jest używane do uzyskania efektu rozmycia.

Klasa o nazwie GaussianBlur pakietu javafx.scene.effect reprezentuje efekt rozmycia gaussowskiego.

9 Rozmycie w ruchu

Podobnie jak efekty Gaussa, rozmycie ruchu jest efektem rozmycia węzłów w JavaFX. Wykorzystuje również jądro splotu Gaussa, aby uzyskać efekt rozmycia, ale różnica polega na tym, że jądro splotu Gaussa jest używane pod określonym kątem.

Klasa o nazwie MotionBlur pakietu javafx.scene.effect reprezentuje efekt rozmycia ruchu.

10 Odbicie

Po zastosowaniu efektu odbicia do węzła w JavaFX, jego odbicie jest dodawane na dole węzła.

Klasa o nazwie Reflection pakietu javafx.scene.effect reprezentuje efekt odbicia.

11 SepiaTone

Po zastosowaniu efektu tonu Sepia do węzła w JavaFX (ogólnie obraz), jest on stonowany czerwono-brązowym kolorem.

Klasa o nazwie SepiaTone pakietu javafx.scene.effect reprezentuje efekt odcienia sepii.

12 Cień

Ten efekt tworzy duplikat określonego węzła z rozmytymi krawędziami.

Klasa o nazwie Shadow pakietu javafx.scene.effect reprezentuje efekt odcienia sepii.

13 DropShadow

Po zastosowaniu tego efektu do węzła za określonym węzłem zostanie utworzony cień.

Klasa o nazwie DropShadow pakietu javafx.scene.effect reprezentuje efekt cienia.

14 Wewnętrzny cień

Po zastosowaniu tego efektu do węzła, cień zostanie utworzony wewnątrz krawędzi węzła.

Klasa o nazwie InnerShadow pakietu javafx.scene.effect reprezentuje efekt wewnętrznego cienia.

15 Oświetlenie

Efekt świetlny służy do symulacji światła ze źródła światła. Istnieją różne rodzaje źródeł światłapoint, distant i spot.

Klasa o nazwie Lighting pakietu javafx.scene.effect reprezentuje efekt oświetlenia.

16 Lekki, odległy

Po zastosowaniu tego efektu do węzła, symuluje się na nim światło, tak jakby było generowane przez odległe źródło światła.

Distant Light Source- Źródło, które znajduje się w dużej odległości od węzła. Tutaj światło jest osłabiane w jednym kierunku od źródła.

Klasa o nazwie Light.Distant pakietu javafx.scene.effect reprezentuje odległe źródło światła.

17 Swiatlo

Po zastosowaniu tego efektu do węzła, symuluje się na nim światło, tak jakby było generowane przez światło punktowe.

Spot light Source- Światło z tego źródła osłabia się we wszystkich kierunkach. Intensywność światła zależy od odległości obiektu od źródła.

Klasa o nazwie Light.Spot pakietu javafx.scene.effect reprezentuje odległe źródło światła.

18 Point.Spot

Po zastosowaniu tego efektu do węzła, symuluje się na nim światło, tak jakby było generowane przez punktowe źródło światła.

Point Light Source- Światło z tego źródła osłabia się we wszystkich kierunkach z jednego punktu. Intensywność światła zależy od odległości obiektu od źródła.

Klasa o nazwie Point.Spot pakietu javafx.scene.effect reprezentuje światło punktowe.