JavaFX - Эффекты

Эффект - это любое действие, улучшающее внешний вид графики. В JavaFX эффект - это алгоритм, который применяется к узлам для визуального улучшения их внешнего вида. Свойство эффектаNode class используется для определения эффекта.

В JavaFX вы можете установить для узла различные эффекты, например bloom, blur и glow. Каждый из этих эффектов представлен классом, и все эти классы доступны в пакете с именемjavafx.scene.effect.

Применение эффектов к узлу

Вы можете применить эффект к узлу, используя setEffect()метод. В этот метод нужно передать объект эффекта.

Чтобы применить эффект к узлу, вам необходимо -

  • Создайте узел.

  • Создайте экземпляр соответствующего класса эффекта, который необходимо применить.

  • Задайте свойства эффекта.

  • Примените эффект к узлу, используя setEffect() метод.

Создание узлов

Прежде всего, создайте узлы в приложении JavaFX, создав экземпляры их соответствующих классов.

Например, если вы хотите применить эффект свечения к изображению в вашем приложении. Во-первых, вам нужно создать узел изображения, создав экземпляр класса Image и установив его представление, как показано ниже.

//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);

Создание соответствующего класса

Создайте экземпляр класса, представляющего эффект, который необходимо применить к созданному узлу.

Например - чтобы применить эффект свечения, вам нужно создать экземпляр Glow класс, как показано в следующем поле кода -

Glow glow = new Glow();

Настройка свойств эффекта

После создания экземпляра класса вам необходимо установить свойства для эффекта, используя его методы установки.

Например - чтобы нарисовать трехмерный блок, вам нужно передать его ширину, высоту и глубину. Вы можете указать эти значения, используя соответствующие методы установки, как показано ниже -

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

Добавление эффекта к узлу

Наконец, вы можете применить к узлу требуемый эффект, используя setEffect()метод. Например: чтобы установить эффект свечения для узла изображения, вам необходимо передать объект класса Glow этому методу следующим образом:

imageView.setEffect(glow);

JavaFX Effects- В следующей таблице представлен список различных эффектов (классов), предоставляемых JavaFX. Эти классы существуют в пакете под названиемjavafx.scene.effect.

S.No Форма и описание
1 Регулировка цвета

Вы можете настроить цвет изображения, применив к нему эффект настройки цвета. Это включает настройкуhue, saturation, brightness и contrast на каждый пиксель

Класс с именем ColorAdjust пакета javafx.scene.effect представляет эффект настройки цвета.

2 Цветной ввод

Эффект ввода цвета дает тот же результат, что и рисование прямоугольника и заливка его цветом. В отличие от других эффектов, если этот эффект применяется к любому узлу, он отображает только прямоугольную рамку (но не узел). Этот эффект в основном используется для передачи других эффектов.

Класс с именем ColorInput пакета javafx.scene.effect представляет эффект ввода цвета.

3 Ввод изображения

Эффект ввода изображения в JavaFX просто вставляет изображение на экран JavaFX.

Так же, как эффект ввода цвета (он используется для передачи указанной цветной прямоугольной области в качестве ввода для другого эффекта), эффект ввода изображения используется для передачи указанного изображения в качестве ввода для другого эффекта.

Класс с именем ImageInput пакета javafx.scene.effect представляет эффект ввода изображения.

4 Смешать

В общем, смесь означает смесь двух или более разных вещей или веществ. Если мы применим этот эффект наложения, он берет пиксели двух разных входов в одном и том же месте и создает комбинированный результат на основеblend mode.

Класс с именем Blend пакета javafx.scene.effect представляет эффект смешивания.

5 Цветение

При применении эффекта цветения пиксели в некоторых частях узла светятся.

Класс с именем Bloom пакета javafx.scene.effect представляет эффект цветения.

6 Свечение

Как и цветение, эффект свечения заставляет заданное входное изображение светиться, этот эффект делает яркие пиксели входного изображения ярче.

Класс с именем Glow пакета javafx.scene.effect представляет эффект свечения.

7 Box Blur

При применении этого эффекта размытия к узлу он становится нечетким. Размытие рамки - это своего рода эффект размытия, предоставляемый JavaFX. В этом эффекте, когда мы применяем размытие к узлу, используется простой прямоугольный фильтр.

Класс с именем BoxBlur пакета javafx.scene.effect представляет эффект размытия рамки.

8 GaussianBlur

Так же, как Box Blur Gaussian - это эффект размытия узлов в JavaFX. Единственная разница вGaussian Blur effect заключается в том, что ядро ​​гауссовой свертки используется для создания эффекта размытия.

Класс с именем GaussianBlur пакета javafx.scene.effect представляет эффект размытия по Гауссу.

9 Размытость

Как и эффекты Гаусса, Motion Blur - это эффект размытия узлов в JavaFX. Он также использует ядро ​​гауссовой свертки для создания эффекта размытия, но разница в том, что в этом эффекте ядро ​​гауссовой свертки используется с заданным углом.

Класс с именем MotionBlur пакета javafx.scene.effect представляет эффект размытия в движении.

10 Отражение

При применении эффекта отражения к узлу в JavaFX его отражение добавляется в нижнюю часть узла.

Класс с именем Reflection пакета javafx.scene.effect представляет эффект отражения.

11 СепияТон

При применении эффекта тона сепии к узлу в JavaFX (изображение в целом) он окрашивается в красновато-коричневый цвет.

Класс с именем SepiaTone пакета javafx.scene.effect представляет эффект тона сепии.

12 Тень

Этот эффект создает дубликат указанного узла с размытыми краями.

Класс с именем Shadow пакета javafx.scene.effect представляет эффект тона сепии.

13 DropShadow

При применении этого эффекта к узлу за указанным узлом будет создана тень.

Класс с именем DropShadow пакета javafx.scene.effect представляет эффект тени.

14 Внутренняя тень

При применении этого эффекта к узлу тень будет создана внутри краев узла.

Класс с именем InnerShadow пакета javafx.scene.effect представляет эффект внутренней тени.

15 Освещение

Эффект освещения используется для имитации света от источника света. Источники света бывают разные, а именно:point, distant и spot.

Класс с именем Lighting пакета javafx.scene.effect представляет световой эффект.

16 Свет. Расстояние

При применении этого эффекта к узлу на нем моделируется свет, как если бы он генерировался удаленным источником света.

Distant Light Source- Источник, находящийся на большом расстоянии от узла. Здесь свет ослабляется в одном направлении от источника.

Класс с именем Light.Distant пакета javafx.scene.effect представляет собой далекий источник света.

17 Свет. Пятно

При применении этого эффекта к узлу на нем моделируется свет, как если бы он был произведен прожектором.

Spot light Source- Свет от этого источника гаснет во всех направлениях. Интенсивность света зависит от расстояния объекта от источника.

Класс с именем Light.Spot пакета javafx.scene.effect представляет собой далекий источник света.

18 Point.Spot

При применении этого эффекта к узлу на нем моделируется свет, как если бы он генерировался точечным источником света.

Point Light Source- Свет от этого источника ослабляется во всех направлениях из одной точки. Интенсивность света зависит от расстояния объекта от источника.

Класс с именем Point.Spot пакета javafx.scene.effect представляет точечный свет.