JavaFX - Efectos
Un efecto es cualquier acción que mejora la apariencia de los gráficos. En JavaFX, un efecto es un algoritmo que se aplica a los nodos para mejorar su apariencia visualmente. La propiedad de efecto delNode La clase se usa para especificar el efecto.
En JavaFX, puede establecer varios efectos en un nodo como bloom, blur y glow. Cada uno de estos efectos está representado por una clase y todas estas clases están disponibles en un paquete llamadojavafx.scene.effect.
Aplicar efectos a un nodo
Puede aplicar un efecto a un nodo usando el setEffect()método. Para este método, debe pasar el objeto del efecto.
Para aplicar un efecto a un nodo, necesita:
Crea el nodo.
Cree una instancia de la clase respectiva del efecto que se necesita aplicar.
Establezca las propiedades del efecto.
Aplicar el efecto al nodo usando el setEffect() método.
Creando los nodos
En primer lugar, cree los nodos en una aplicación JavaFX instanciando sus respectivas clases.
Por ejemplo, si desea aplicar un efecto de brillo a una imagen en su aplicación. En primer lugar, debe crear un nodo de imagen creando una instancia de la clase Image y estableciendo su vista como se muestra a continuación.
//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);
Instanciar la clase respectiva
Cree una instancia de la clase que representa el efecto que se necesita aplicar al nodo creado.
Por ejemplo: para aplicar el efecto de brillo, debe crear una instancia del Glow class como se muestra en el siguiente cuadro de código -
Glow glow = new Glow();
Configuración de las propiedades del efecto
Después de crear una instancia de la clase, debe establecer las propiedades del efecto utilizando sus métodos de establecimiento.
Por ejemplo: para dibujar un cuadro tridimensional, debe pasar su ancho, alto y profundidad. Puede especificar estos valores utilizando sus respectivos métodos de establecimiento como se muestra a continuación:
//setting the level property
glow.setLevel(0.9);
Agregar efecto al nodo
Finalmente, puede aplicar el efecto requerido al nodo usando el setEffect()método. Por ejemplo: para establecer el efecto de brillo en el nodo de la imagen, debe pasar el objeto de la clase Glow a este método de la siguiente manera:
imageView.setEffect(glow);
JavaFX Effects- La siguiente tabla le ofrece la lista de varios efectos (clases) proporcionados por JavaFX. Estas clases existen en el paquete llamadojavafx.scene.effect.
S. No | Forma y descripción |
---|---|
1 | Ajuste de color
Puede ajustar el color de una imagen aplicándole el efecto de ajuste de color. Esto incluye el ajuste de lahue, saturation, brightness y contrast en cada pixel La clase nombrada ColorAdjust del paquete javafx.scene.effect representa el efecto de ajuste de color. |
2 | Entrada de color
Efecto de entrada de color da el mismo resultado que dibujar un rectángulo y rellenarlo con color. A diferencia de otros efectos, si este efecto se aplica a cualquier nodo, solo muestra un cuadro rectangular (no el nodo). Este efecto se utiliza principalmente para pasar como entrada para otros efectos. La clase nombrada ColorInput del paquete javafx.scene.effect representa el efecto de entrada de color. |
3 | Entrada de imagen
El efecto de entrada de imagen en JavaFX simplemente incrusta una imagen en la pantalla de JavaFX. Al igual que el efecto de entrada de color (se utiliza para pasar la región rectangular coloreada especificada como entrada a otro efecto), el efecto de entrada de imagen se utiliza para pasar la imagen especificada como entrada a otro efecto. La clase nombrada ImageInput del paquete javafx.scene.effect representa el efecto de entrada de imagen. |
4 | Mezcla
En general, mezcla significa mezcla de dos o más cosas o sustancias diferentes. Si aplicamos este efecto de mezcla, toma los píxeles de dos entradas diferentes, en la misma ubicación y produce una salida combinada basada en lablend mode. La clase nombrada Blend del paquete javafx.scene.effect representa el efecto de mezcla. |
5 | Florecer
Al aplicar el efecto de floración, los píxeles en algunas partes del nodo se hacen brillar. La clase nombrada Bloom del paquete javafx.scene.effect representa el efecto de floración. |
6 | Resplandor
Al igual que floración, el efecto Resplandor hace que la imagen de entrada dada brille, este efecto hace que los píxeles brillantes de la entrada sean más brillantes. La clase nombrada Glow del paquete javafx.scene.effect representa el efecto de brillo. |
7 | Caja de desenfoque
Al aplicar este efecto de desenfoque a un nodo, no queda claro. El desenfoque de cuadro es una especie de efecto de desenfoque proporcionado por JavaFX. En este efecto, cuando aplicamos desenfoque a un nodo, se usa un filtro de caja simple. La clase nombrada BoxBlur del paquete javafx.scene.effect representa el efecto boxblur. |
8 | Desenfoque gaussiano
Al igual que Box Blur, Gaussian es un efecto para difuminar los nodos en JavaFX. La única diferencia en elGaussian Blur effect es que se utiliza un núcleo de convolución gaussiano para producir un efecto de desenfoque. La clase denominada GaussianBlur del paquete javafx.scene.effect representa el efecto Desenfoque gaussiano. |
9 | Desenfoque de movimiento
Al igual que los efectos gaussianos, Motion Blur es un efecto para desenfocar los nodos en JavaFX. También usa un núcleo de convolución gaussiano para producir un efecto de desenfoque, pero la diferencia está en este efecto que el núcleo de convolución gaussiano se usa con un ángulo específico. La clase nombrada MotionBlur del paquete javafx.scene.effect representa el efecto Motion Blur. |
10 | Reflexión
Al aplicar el efecto de reflexión a un nodo en JavaFX, se agrega un reflejo en la parte inferior del nodo. La clase nombrada Reflection del paquete javafx.scene.effect representa el efecto de reflexión. |
11 |
Tono sepia
Al aplicar el efecto de tono Sepia a un nodo en JavaFX (imagen en general), se tonifica con un color marrón rojizo. La clase nombrada SepiaTone del paquete javafx.scene.effect representa el efecto de tono sepia. |
12 | Sombra
Este efecto crea un duplicado del nodo especificado con bordes borrosos. La clase nombrada Shadow del paquete javafx.scene.effect representa el efecto de tono sepia. |
13 | DropShadow
Al aplicar este efecto a un nodo, se creará una sombra detrás del nodo especificado. La clase nombrada DropShadow del paquete javafx.scene.effect representa el efecto de sombra paralela. |
14 | Sombra interior
Al aplicar este efecto a un nodo, se creará una sombra dentro de los bordes del nodo. La clase nombrada InnerShadow del paquete javafx.scene.effect representa el efecto de sombra interior. |
15 | Encendiendo
El efecto de iluminación se utiliza para simular una luz de una fuente de luz. Hay diferentes tipos de fuentes de luz, a saberpoint, distant y spot. La clase nombrada Lighting del paquete javafx.scene.effect representa el efecto de iluminación. |
dieciséis | Luz.Distante
Al aplicar este efecto a un nodo, se simula una luz sobre él, como si fuera generada por una fuente de luz distante. Distant Light Source- Una fuente que se encuentra a gran distancia del nodo. Aquí, la luz se atenúa en una dirección desde la fuente. La clase nombrada Light.Distant del paquete javafx.scene.effect representa la fuente de luz distante. |
17 | Punto de luz
Al aplicar este efecto a un nodo, se simula una luz sobre él, como si la generara un foco. Spot light Source- La luz de esta fuente se atenúa en todas direcciones. La intensidad de la luz depende de la distancia del objeto a la fuente. La clase nombrada Light.Spot del paquete javafx.scene.effect representa la fuente de luz distante. |
18 | Point.Spot
Al aplicar este efecto a un nodo, se simula una luz sobre él, como si fuera generada por una fuente de luz puntual. Point Light Source- La luz de esta fuente se atenúa en todas las direcciones desde un solo punto. La intensidad de la luz depende de la distancia del objeto a la fuente. La clase nombrada Point.Spot del paquete javafx.scene.effect representa el punto de luz. |