Efectos JavaFX - MotionBlur

Al igual que el efecto gaussiano, Motion Blur es un efecto para desenfocar los nodos en JavaFX. También utiliza un núcleo de convolución gaussiana que ayuda a producir el efecto de desenfoque. La única diferencia entre el efecto gaussiano y el desenfoque de movimiento es que el núcleo de convolución gaussiano se usa con un ángulo específico.

Como indica el nombre, al aplicar este efecto especificando algún ángulo, la entrada dada le parece como si la estuviera viendo mientras está en movimiento.

La clase nombrada MotionBlur del paquete javafx.scene.effectrepresenta el efecto Motion Blur. Esta clase contiene tres propiedades, que incluyen:

  • input - Esta propiedad es del tipo Efecto y representa una entrada al efecto de desenfoque del cuadro.

  • radius - Esta propiedad es de tipo doble que representa el radio con el que Motion Blur Effect se aplicará.

  • Angle - Esta es una propiedad de tipo doble y representa el ángulo del efecto de movimiento en grados.

Ejemplo

El siguiente programa es un ejemplo que demuestra el efecto de desenfoque de movimiento. Aquí, estamos dibujando el texto “Bienvenido a Tutorialspoint” relleno con color DARKSEAGREEN y aplicándole el efecto Motion Blur con un ángulo de 45 grados.

Guarde este código en un archivo con el nombre MotionBlurEffectExample.java.

import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.scene.paint.Color; 
import javafx.stage.Stage; 
import javafx.scene.text.Font; 
import javafx.scene.text.FontWeight; 
import javafx.scene.text.Text; 
import javafx.scene.effect.MotionBlur; 
         
public class MotionBlurEffectExample extends Application { 
   @Override 
   public void start(Stage stage) {       
      //Creating a Text object 
      Text text = new Text();       
      
      //Setting font to the text 
      text.setFont(Font.font(null, FontWeight.BOLD, 40)); 
      
      //setting the position of the text 
      text.setX(60); 
      text.setY(150);  
      
      //Setting the text to be added. 
      text.setText("Welcome to Tutorialspoint"); 
      
      //Setting the color of the text 
      text.setFill(Color.DARKSEAGREEN);  
       
      //Instantiating the MotionBlur class 
      MotionBlur motionBlur = new MotionBlur();       
      
      //Setting the radius to the effect 
      motionBlur.setRadius(10.5); 
      
      //Setting angle to the effect 
      motionBlur.setAngle(45);        
      
      //Applying MotionBlur effect to text
      text.setEffect(motionBlur);        
         
      //Creating a Group object  
      Group root = new Group(text);   
               
      //Creating a scene object 
      Scene scene = new Scene(root, 600, 300);  
      
      //Setting title to the Stage 
      stage.setTitle("Sample Application"); 
         
      //Adding scene to the stage 
      stage.setScene(scene); 
         
      //Displaying the contents of the stage 
      stage.show();         
   } 
   public static void main(String args[]){ 
      launch(args); 
   } 
}

Compile y ejecute el archivo java guardado desde el símbolo del sistema utilizando los siguientes comandos.

javac MotionBlurEffectExample.java 
java MotionBlurEffectExample

Al ejecutarse, el programa anterior genera una ventana JavaFX como se muestra a continuación.