JavaFX-エフェクト

効果とは、グラフィックの外観を向上させるアクションです。JavaFXでは、エフェクトはノードに適用されて視覚的に外観を向上させるアルゴリズムです。の効果特性Node クラスは効果を指定するために使用されます。

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();

エフェクトのプロパティの設定

クラスをインスタンス化した後、セッターメソッドを使用してエフェクトのプロパティを設定する必要があります。

例-3次元ボックスを描画するには、その幅、高さ、深さを渡す必要があります。これらの値は、以下に示すように、それぞれのセッターメソッドを使用して指定できます。

//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 and contrast on each pixel

The class named ColorAdjust of the package javafx.scene.effect represents the color adjust effect.

2 Color Input

Color Input Effect gives the same output as drawing a rectangle and filling it with color. Unlike other effects, if this effect is applied to any node, it displays only a rectangular box (not the node). This effect is mostly used to pass as an input for other effects.

The class named ColorInput of the package javafx.scene.effect represents the color input effect.

3 Image Input

Image input effect in JavaFX just embeds an image to the JavaFX screen.

Just like Color Input effect (It is used to pass the specified colored rectangular region as input to other effect), Image Input effect is used to pass the specified image as an input to another effect.

The class named ImageInput of the package javafx.scene.effect represents the Image Input effect.

4 Blend

In general, blend means mixture of two or more different things or substances. If we apply this blend effect, it takes the pixels of two different inputs, at the same location and it produces a combined output based on the blend mode.

The class named Blend of the package javafx.scene.effect represents the blend effect.

5 Bloom

On applying bloom effect, pixels in some portions of the node are made to glow.

The class named Bloom of the package javafx.scene.effect represents the bloom effect.

6 Glow

Just like bloom, the Glow effect makes the given input image to glow, this effect makes the bright pixels of the input brighter.

The class named Glow of the package javafx.scene.effect represents the glow effect.

7 Box Blur

On applying this blur effect to a node, it is made unclear. Box blur is a kind of blur effect provided by JavaFX. In this effect, when we apply blur to a node, a simple box filter is used.

The class named BoxBlur of the package javafx.scene.effect represents the boxblur effect.

8 GaussianBlur

Just like Box Blur Gaussian is an effect to blur the nodes in JavaFX. The only difference in the Gaussian Blur effect is that a Gaussian convolution kernel is used to produce a blurring effect.

The class named GaussianBlur of the package javafx.scene.effect represents the Gaussian Blur effect.

9 MotionBlur

Just like Gaussian Effects, Motion Blur is an effect to blur the nodes in JavaFX. It also uses a Gaussian convolution kernel to produce a blurring effect, but the difference is in this effect the Gaussian convolution kernel is used with a specified angle.

The class named MotionBlur of the package javafx.scene.effect represents the Motion Blur effect.

10 Reflection

On applying the reflection effect to a node in JavaFX, a reflection of it is added at the bottom of the node.

The class named Reflection of the package javafx.scene.effect represents the reflection effect.

11 SepiaTone

On applying the Sepia tone effect to a node in JavaFX (image in general), it is toned with a reddish brown color.

The class named SepiaTone of the package javafx.scene.effect represents the sepia tone effect.

12 Shadow

This effect creates a duplicate of the specified node with blurry edges.

The class named Shadow of the package javafx.scene.effect represents the sepia tone effect.

13 DropShadow

On applying this effect to a node, a shadow will be created behind the specified node.

The class named DropShadow of the package javafx.scene.effect represents the drop shadow effect.

14 InnerShadow

On applying this effect to a node, a shadow will be created inside the edges of the node.

The class named InnerShadow of the package javafx.scene.effect represents the inner shadow effect.

15 Lighting

The lighting effect is used to simulate a light from a light source. There are different kinds of light sources namely point, distant and spot.

The class named Lighting of the package javafx.scene.effect represents the lighting effect.

16 Light.Distant

On applying this effect to a node, a light is simulated on it, as if it is being generated by a distant light source.

Distant Light Source − A source which is at a far distance from the node. In here, the light is attenuated in one direction from the source.

The class named Light.Distant of the package javafx.scene.effect represents the distant light source.

17 Light.Spot

On applying this effect to a node, a light is simulated on it, as if it is being generated by a spot light.

Spot light Source − The light from this source attenuates in all directions. The intensity of the light depends on the distance of the object from the source.

The class named Light.Spot of the package javafx.scene.effect represents the distant light source.

18 Point.Spot

On applying this effect to a node, a light is simulated on it, as if it is being generated by a point light source.

Point Light Source − The light from this source attenuates in all directions from a single point. The intensity of the light depends on the distance of the object from the source.

The class named Point.Spot of the package javafx.scene.effect represents the point light.