Effetti JavaFX - Blend

In generale, miscela significa miscela di due o più cose o sostanze diverse. Se applichiamo l'effetto di fusione, ci vorranno i pixel di due diversi input. Questo verrà fatto nella stessa posizione e produrrà un output combinato basato sublend mode.

Ad esempio, se disegniamo due oggetti, l'oggetto in alto copre quello in basso. Applicando l'effetto fusione, i pixel dei due oggetti nell'area di sovrapposizione vengono combinati e visualizzati in base alla modalità di input.

La classe denominata Blend del pacchetto javafx.scene.effect rappresenta l'effetto di fusione, questa classe contiene quattro proprietà, che sono:

  • bottomInput - Questa proprietà è del tipo Effect e rappresenta l'ingresso in basso all'effetto di fusione.

  • topInput - Questa proprietà è del tipo Effect e rappresenta l'input principale per l'effetto di fusione.

  • opacity - Questa proprietà è di tipo double e rappresenta il valore di opacità modulato con l'ingresso superiore.

  • mode - Questa proprietà è del tipo BlendMode e rappresenta la modalità utilizzata per fondere i due input insieme.

Esempio

Di seguito è riportato un esempio che dimostra l'effetto di fusione. Qui stiamo disegnando un cerchio pieno di colore MARRONE, sopra di esso si trova un ingresso colore BLU VIOLA.

Abbiamo applicato l'effetto di fusione scegliendo una modalità di moltiplicazione Nell'area di sovrapposizione, i colori dei due oggetti sono stati moltiplicati e visualizzati.

Salva questo codice in un file con il nome BlendEffectExample.java.

import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.stage.Stage;
import javafx.scene.shape.Circle; 
import javafx.scene.effect.Blend; 
import javafx.scene.effect.BlendMode; 
import javafx.scene.effect.ColorInput; 
import javafx.scene.paint.Color; 
         
public class BlendEffectExample extends Application { 
   @Override 
   public void start(Stage stage) { 
      //Drawing a Circle 
      Circle circle = new Circle();       
      
      //Setting the center of the Circle
      circle.setCenterX(75.0f); 
      circle.setCenterY(75.0f); 
      
      //Setting radius of the circle 
      circle.setRadius(30.0f); 
      
      //Setting the fill color of the circle 
      circle.setFill(Color.BROWN); 
       
      //Instantiating the blend class 
      Blend blend = new Blend(); 
      
      //Preparing the to input object 
      ColorInput topInput = new ColorInput(35, 30, 75, 40, Color.BLUEVIOLET); 
      
      //setting the top input to the blend object 
      blend.setTopInput(topInput); 
      
      //setting the blend mode 
      blend.setMode(BlendMode.SRC_OVER); 
       
      //Applying the blend effect to circle  
      circle.setEffect(blend);       
         
      //Creating a Group object  
      Group root = new Group(circle); 
         
      //Creating a scene object 
      Scene scene = new Scene(root, 150, 150);  
      
      //Setting title to the Stage 
      stage.setTitle("Blend Example"); 
         
      //Adding scene to the stage 
      stage.setScene(scene); 
         
      //Displaying the contents of the stage 
      stage.show(); 
   }      
   public static void main(String args[]){ 
      launch(args); 
   } 
}

Compilare ed eseguire il file java salvato dal prompt dei comandi utilizzando i seguenti comandi.

javac BlendEffectExample.java 
java BlendEffectExample

All'esecuzione, il programma di cui sopra genera una finestra JavaFX come mostrato di seguito.

Modalità di fusione

S.NO Modalità e descrizione Produzione
1

ADD

In questa modalità, i valori di colore degli ingressi superiore e inferiore vengono aggiunti e visualizzati.

2

MULTIPLY

In questa modalità, i valori di colore degli ingressi superiore e inferiore vengono moltiplicati e visualizzati.

3

DIFFERENCE

In questa modalità, tra i valori di colore degli ingressi superiore e inferiore, quello più scuro viene sottratto da quello più chiaro e visualizzato.

4

RED

In questa modalità, i componenti rossi dell'ingresso inferiore sono stati sostituiti dai componenti rossi dell'ingresso superiore.

5

BLUE

In questa modalità, i componenti blu dell'ingresso inferiore sono stati sostituiti dai componenti blu dell'ingresso superiore.

6

GREEN

In questa modalità, i componenti verdi dell'ingresso inferiore sono stati sostituiti dai componenti verdi dell'ingresso superiore.

7

EXCLUSION

In questa modalità, le componenti di colore dei due input sono state moltiplicate e raddoppiate. Quindi vengono sottratti dalla somma delle componenti di colore dell'input inferiore. La risultante viene quindi visualizzata.

8

COLOR_BURN

In questa modalità, l'inverso del componente colore di input inferiore è stato diviso per il componente colore di input superiore. Pertanto, il valore ottenuto viene invertito e visualizzato.

9

COLOR_DODGE

In questa modalità, i componenti del colore di input inferiore sono stati divisi per l'inverso dei componenti del colore di input superiore e quindi il valore ottenuto viene invertito e visualizzato.

10

LIGHTEN

In questa modalità, viene visualizzata la componente di colore più chiara, tra i due ingressi.

11

DARKEN

In questa modalità, viene visualizzata la componente di colore più scuro, tra gli ingressi superiore e inferiore.

12

SCREEN

In questa modalità, le componenti di colore degli ingressi superiore e inferiore sono state invertite, moltiplicate e quindi il valore ottenuto viene invertito e visualizzato.

13

OVERLAY

In questa modalità, in base al colore di input inferiore, i componenti di colore dei due valori di input sono stati moltiplicati o retinati e viene visualizzato il risultato.

14

HARD_LIGHT

In questa modalità, in base al colore di input superiore, i componenti di colore dei due valori di input sono stati moltiplicati o retinati e viene visualizzato il risultato.

15

SOFT_LIGH

In questa modalità, in base al colore di input superiore, le componenti di colore dei due valori di input sono state ammorbidite o schiarite e viene visualizzato il risultato.

16

SRC_ATOP

In questa modalità, l'area di sovrapposizione viene riempita con la componente di colore dell'ingresso inferiore. Mentre l'area non sovrapposta è riempita con il componente di colore dell'input superiore.

17

SRC_OVER

In questa modalità, l'input superiore viene disegnato sull'input inferiore.