JavaFX - Efek

Efek adalah tindakan apa pun yang meningkatkan tampilan grafik. Dalam JavaFX, efek adalah algoritme yang diterapkan pada node untuk menyempurnakan tampilannya secara visual. Properti efek dariNode kelas digunakan untuk menentukan efeknya.

Di JavaFX, Anda dapat mengatur berbagai efek ke node seperti bloom, blur dan glow. Masing-masing efek ini diwakili oleh sebuah kelas dan semua kelas ini tersedia dalam sebuah paket bernamajavafx.scene.effect.

Menerapkan Efek ke Node

Anda dapat menerapkan efek ke node menggunakan setEffect()metode. Untuk metode ini, Anda harus meneruskan objek efek.

Untuk menerapkan efek ke node, Anda perlu -

  • Buat node.

  • Instantiate kelas masing-masing efek yang perlu diterapkan.

  • Atur properti efek.

  • Terapkan efek ke node menggunakan setEffect() metode.

Membuat Node

Pertama-tama, buat node dalam aplikasi JavaFX dengan membuat instance kelasnya masing-masing.

Misalnya, jika Anda ingin menerapkan efek cahaya ke gambar di aplikasi Anda. Pertama, Anda perlu membuat node gambar dengan membuat instance kelas Image dan mengatur tampilannya seperti yang ditunjukkan di bawah ini.

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

Instansiasi Kelas Masing-masing

Instantiate kelas yang mewakili efek yang diperlukan untuk diterapkan ke node yang dibuat.

Misalnya - Untuk menerapkan efek cahaya, Anda perlu membuat instance Glow kelas seperti yang ditunjukkan pada kotak kode berikut -

Glow glow = new Glow();

Mengatur Properti Efek

Setelah membuat instance kelas, Anda perlu menyetel properti untuk efek menggunakan metode penyetelnya.

Misalnya - Untuk menggambar kotak 3-Dimensi, Anda harus meneruskan lebar, tinggi, dan kedalamannya. Anda dapat menentukan nilai-nilai ini menggunakan metode penyetelnya masing-masing seperti yang ditunjukkan di bawah ini -

//setting the level property 
glow.setLevel(0.9);

Menambahkan Efek ke Node

Terakhir, Anda dapat menerapkan efek yang diperlukan ke node menggunakan setEffect()metode. Misalnya: Untuk menyetel efek cahaya ke node gambar, Anda harus meneruskan objek kelas Cahaya ke metode ini sebagai berikut -

imageView.setEffect(glow);

JavaFX Effects- Tabel berikut memberi Anda daftar berbagai efek (kelas) yang disediakan oleh JavaFX. Kelas-kelas ini ada dalam paket yang disebutjavafx.scene.effect.

S.No Bentuk dan Deskripsi
1 Color Adjust

Anda dapat menyesuaikan warna gambar dengan menerapkan efek penyesuaian warna padanya. Ini termasuk penyesuaian filehue, saturation, brightness dan contrast pada setiap piksel

Kelas bernama ColorAdjust dari paket javafx.scene.effect mewakili efek penyesuaian warna.

2 Masukan Warna

Color Input Effect memberikan hasil yang sama seperti menggambar persegi panjang dan mengisinya dengan warna. Tidak seperti efek lain, jika efek ini diterapkan ke sembarang node, ini hanya menampilkan kotak persegi panjang (bukan node). Efek ini sebagian besar digunakan sebagai masukan untuk efek lainnya.

Kelas bernama ColorInput dari paket javafx.scene.effect mewakili efek masukan warna.

3 Masukan Gambar

Efek input gambar di JavaFX hanya menyematkan gambar ke layar JavaFX.

Sama seperti efek Input Warna (Ini digunakan untuk melewatkan wilayah persegi panjang berwarna yang ditentukan sebagai input ke efek lain), efek Input Gambar digunakan untuk melewatkan gambar yang ditentukan sebagai input ke efek lain.

Kelas bernama ImageInput dari paket javafx.scene.effect mewakili efek Input Gambar.

4 Campur

Secara umum, campuran berarti campuran dari dua atau lebih zat atau zat yang berbeda. Jika kita menerapkan efek campuran ini, ini mengambil piksel dari dua masukan yang berbeda, di lokasi yang sama dan menghasilkan keluaran gabungan berdasarkanblend mode.

Kelas bernama Blend dari paket javafx.scene.effect mewakili efek campuran.

5 Berkembang

Saat menerapkan efek mekar, piksel di beberapa bagian node dibuat bersinar.

Kelas bernama Bloom dari paket javafx.scene.effect mewakili efek mekar.

6 Cahaya

Sama seperti mekar, efek Glow membuat gambar masukan yang diberikan bersinar, efek ini membuat piksel terang dari masukan menjadi lebih cerah.

Kelas bernama Glow dari paket javafx.scene.effect mewakili efek cahaya.

7 Box Blur

Saat menerapkan efek blur ini ke node, dibuat tidak jelas. Box blur adalah sejenis efek blur yang disediakan oleh JavaFX. Dalam efek ini, saat kita menerapkan blur ke node, filter kotak sederhana digunakan.

Kelas bernama BoxBlur dari paket javafx.scene.effect mewakili efek boxblur.

8 GaussianBlur

Sama seperti Box Blur Gaussian adalah efek untuk mengaburkan node di JavaFX. Satu-satunya perbedaan di fileGaussian Blur effect adalah bahwa kernel konvolusi Gaussian digunakan untuk menghasilkan efek kabur.

Kelas bernama GaussianBlur dari paket tersebut javafx.scene.effect mewakili efek Gaussian Blur.

9 MotionBlur

Sama seperti Efek Gaussian, Motion Blur adalah efek untuk mengaburkan node di JavaFX. Ia juga menggunakan kernel konvolusi Gaussian untuk menghasilkan efek kabur, tetapi perbedaannya adalah dalam efek ini kernel konvolusi Gaussian digunakan dengan sudut yang ditentukan.

Kelas bernama MotionBlur dari paket javafx.scene.effect mewakili efek Motion Blur.

10 Refleksi

Saat menerapkan efek refleksi ke node di JavaFX, refleksi itu ditambahkan di bagian bawah node.

Kelas bernama Reflection dari paket javafx.scene.effect mewakili efek refleksi.

11 SepiaTone

Saat menerapkan efek nada Sepia ke node di JavaFX (gambar secara umum), itu diwarnai dengan warna coklat kemerahan.

Kelas bernama SepiaTone dari paket javafx.scene.effect mewakili efek nada sepia.

12 Bayangan

Efek ini membuat duplikat dari node yang ditentukan dengan tepi buram.

Kelas bernama Shadow dari paket javafx.scene.effect mewakili efek nada sepia.

13 DropShadow

Saat menerapkan efek ini ke node, bayangan akan dibuat di belakang node yang ditentukan.

Kelas bernama DropShadow dari paket javafx.scene.effect mewakili efek bayangan jatuh.

14 InnerShadow

Saat menerapkan efek ini ke node, bayangan akan dibuat di dalam tepi node.

Kelas bernama InnerShadow dari paket javafx.scene.effect mewakili efek bayangan batin.

15 Petir

Efek pencahayaan digunakan untuk mensimulasikan cahaya dari sumber cahaya. Ada berbagai macam sumber cahaya yaitupoint, distant dan spot.

Kelas bernama Lighting dari paket javafx.scene.effect mewakili efek pencahayaan.

16 Cahaya Jarak Jauh

Saat menerapkan efek ini ke node, sebuah cahaya disimulasikan di atasnya, seolah-olah itu dihasilkan oleh sumber cahaya yang jauh.

Distant Light Source- Sumber yang berada pada jarak jauh dari node. Di sini, cahaya dilemahkan ke satu arah dari sumbernya.

Kelas bernama Light.Distant dari paket javafx.scene.effect mewakili sumber cahaya yang jauh.

17 Light.Spot

Saat menerapkan efek ini ke sebuah node, sebuah cahaya disimulasikan padanya, seolah-olah itu dihasilkan oleh sebuah lampu sorot.

Spot light Source- Cahaya dari sumber ini melemah ke segala arah. Intensitas cahayanya tergantung pada jarak benda dari sumbernya.

Kelas bernama Light.Spot dari paket javafx.scene.effect mewakili sumber cahaya yang jauh.

18 Point.Spot

Saat menerapkan efek ini ke node, cahaya disimulasikan di atasnya, seolah-olah dihasilkan oleh sumber cahaya titik.

Point Light Source- Cahaya dari sumber ini melemah ke segala arah dari satu titik. Intensitas cahayanya tergantung pada jarak benda dari sumbernya.

Kelas bernama Point.Spot dari paket javafx.scene.effect mewakili titik cahaya.