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 представляет точечный свет. |