Учебники

JavaFX — Эффекты

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

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

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

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

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

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

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

  • Установите свойства эффекта.

  • Примените эффект к узлу, используя метод 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. В следующей таблице приведен список различных эффектов (классов), предоставляемых JavaFX. Эти классы существуют в пакете с именем javafx.scene.effect .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Эффект освещения используется для имитации света от источника света. Существуют разные виды источников света, а именно точечные , дальние и точечные .

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

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

Удаленный источник света — источник, который находится на большом расстоянии от узла. Здесь свет ослабляется в одном направлении от источника.

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

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

Точечный источник света — свет от этого источника ослабляется во всех направлениях. Интенсивность света зависит от расстояния объекта от источника.

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

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

Точечный источник света — свет от этого источника ослабляется во всех направлениях из одной точки. Интенсивность света зависит от расстояния объекта от источника.

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