JavaFX - เอฟเฟกต์

เอฟเฟกต์คือการกระทำใด ๆ ที่ช่วยเพิ่มลักษณะที่ปรากฏของกราฟิก ใน JavaFX เอฟเฟกต์คืออัลกอริทึมที่ใช้กับโหนดเพื่อปรับปรุงลักษณะที่มองเห็นได้ คุณสมบัติเอฟเฟกต์ของNode คลาสใช้เพื่อระบุเอฟเฟกต์

ใน JavaFX คุณสามารถตั้งค่าเอฟเฟกต์ต่างๆให้กับโหนดเช่น bloom, blur และ glow. แต่ละเอฟเฟกต์เหล่านี้แสดงโดยคลาสและคลาสเหล่านี้ทั้งหมดมีอยู่ในแพ็คเกจที่ชื่อjavafx.scene.effect.

การใช้เอฟเฟกต์กับโหนด

คุณสามารถใช้เอฟเฟกต์กับโหนดโดยใช้ไฟล์ setEffect()วิธี. ในวิธีนี้คุณต้องส่งผ่านวัตถุของเอฟเฟกต์

ในการใช้เอฟเฟกต์กับโหนดคุณต้อง -

  • สร้างโหนด

  • สร้างเอฟเฟกต์คลาสตามลำดับที่จำเป็นในการใช้งาน

  • ตั้งค่าคุณสมบัติของเอฟเฟกต์

  • ใช้เอฟเฟกต์กับโหนดโดยใช้ setEffect() วิธี.

การสร้างโหนด

ก่อนอื่นให้สร้างโหนดในแอ็พพลิเคชัน JavaFX โดยสร้างอินสแตนซ์คลาสตามลำดับ

ตัวอย่างเช่นหากคุณต้องการใช้เอฟเฟกต์เรืองแสงกับรูปภาพในแอปพลิเคชันของคุณ ประการแรกคุณต้องสร้างโหนดรูปภาพโดยสร้างอินสแตนซ์คลาสรูปภาพและตั้งค่ามุมมองดังที่แสดงด้านล่าง

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

การตั้งค่าคุณสมบัติของเอฟเฟกต์

หลังจากสร้างอินสแตนซ์คลาสแล้วคุณต้องตั้งค่าคุณสมบัติสำหรับเอฟเฟกต์โดยใช้เมธอด setter

ตัวอย่างเช่น - ในการวาดกล่อง 3 มิติคุณต้องส่งผ่านความกว้างความสูงและความลึก คุณสามารถระบุค่าเหล่านี้โดยใช้เมธอด setter ตามที่แสดงด้านล่าง -

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

การเพิ่มเอฟเฟกต์ให้กับโหนด

สุดท้ายคุณสามารถใช้เอฟเฟกต์ที่ต้องการกับโหนดโดยใช้ไฟล์ setEffect()วิธี. ตัวอย่างเช่น: ในการตั้งค่าเอฟเฟกต์การเรืองแสงให้กับโหนดรูปภาพคุณต้องส่งออบเจ็กต์ของคลาส Glow ไปยังเมธอดนี้ดังนี้ -

imageView.setEffect(glow);

JavaFX Effects- ตารางต่อไปนี้แสดงรายการเอฟเฟกต์ต่างๆ (คลาส) ที่ JavaFX มีให้ คลาสเหล่านี้มีอยู่ในแพ็คเกจที่เรียกว่าjavafx.scene.effect.

ส. เลขที่ รูปร่างและลักษณะ
1 ปรับสี

คุณสามารถปรับสีของภาพได้โดยใช้เอฟเฟกต์การปรับสีกับภาพนั้น ซึ่งรวมถึงการปรับไฟล์hue, saturation, brightness และ contrast ในแต่ละพิกเซล

ชั้นเรียนชื่อ ColorAdjust ของแพ็คเกจ javafx.scene.effect แสดงถึงเอฟเฟกต์การปรับสี

2 อินพุตสี

Color Input Effect ให้ผลลัพธ์เหมือนกับการวาดรูปสี่เหลี่ยมผืนผ้าและเติมสี แตกต่างจากเอฟเฟกต์อื่น ๆ หากใช้เอฟเฟกต์นี้กับโหนดใด ๆ จะแสดงเฉพาะกล่องสี่เหลี่ยม (ไม่ใช่โหนด) เอฟเฟกต์นี้ส่วนใหญ่จะใช้เพื่อส่งผ่านเป็นอินพุตสำหรับเอฟเฟกต์อื่น ๆ

ชั้นเรียนชื่อ ColorInput ของแพ็คเกจ javafx.scene.effect หมายถึงเอฟเฟกต์การป้อนสี

3 อินพุตรูปภาพ

เอฟเฟกต์การป้อนรูปภาพใน JavaFX เพียงแค่ฝังรูปภาพลงในหน้าจอ JavaFX

เช่นเดียวกับเอฟเฟกต์การป้อนสี (ใช้เพื่อส่งผ่านพื้นที่สี่เหลี่ยมสีที่ระบุเป็นอินพุตไปยังเอฟเฟกต์อื่น ๆ ) เอฟเฟกต์อินพุตรูปภาพจะใช้เพื่อส่งผ่านรูปภาพที่ระบุเป็นอินพุตไปยังเอฟเฟกต์อื่น

ชั้นเรียนชื่อ ImageInput ของแพ็คเกจ javafx.scene.effect แสดงถึงเอฟเฟกต์การป้อนรูปภาพ

4 ผสมผสาน

โดยทั่วไปการผสมผสานหมายถึงส่วนผสมของสิ่งหรือสารที่แตกต่างกันตั้งแต่สองอย่างขึ้นไป หากเราใช้เอฟเฟกต์การผสมผสานนี้จะใช้พิกเซลของอินพุตที่แตกต่างกันสองอินพุตในตำแหน่งเดียวกันและสร้างเอาต์พุตรวมตามblend mode.

ชั้นเรียนชื่อ Blend ของแพ็คเกจ javafx.scene.effect แสดงถึงเอฟเฟกต์ผสมผสาน

5 บาน

ในการใช้เอฟเฟกต์บลูมพิกเซลในบางส่วนของโหนดจะทำให้เรืองแสง

ชั้นเรียนชื่อ Bloom ของแพ็คเกจ javafx.scene.effect แสดงถึงเอฟเฟกต์บาน

6 เรืองแสง

เอฟเฟกต์เรืองแสงทำให้ภาพอินพุตที่กำหนดให้เรืองแสงเช่นเดียวกับบานเอฟเฟกต์นี้ทำให้พิกเซลสว่างของอินพุตสว่างขึ้น

ชั้นเรียนชื่อ Glow ของแพ็คเกจ javafx.scene.effect แสดงถึงเอฟเฟกต์เรืองแสง

7 กล่องเบลอ

ในการนำเอฟเฟกต์เบลอนี้ไปใช้กับโหนดทำให้ไม่ชัดเจน Box เบลอเป็นเอฟเฟกต์เบลอชนิดหนึ่งที่ JavaFX มีให้ ในเอฟเฟกต์นี้เมื่อเราใช้การเบลอกับโหนดจะใช้ตัวกรองกล่องธรรมดา

ชั้นเรียนชื่อ BoxBlur ของแพ็คเกจ javafx.scene.effect แสดงถึงเอฟเฟกต์ boxblur

8 Gaussian เบลอ

เช่นเดียวกับ Box Blur Gaussian คือเอฟเฟกต์ในการเบลอโหนดใน JavaFX ข้อแตกต่างเพียงอย่างเดียวในGaussian Blur effect คือเคอร์เนล Convolution Gaussian ใช้เพื่อสร้างเอฟเฟกต์การเบลอ

คลาสชื่อ GaussianBlur ของแพ็กเกจ javafx.scene.effect แสดงถึงเอฟเฟกต์ Gaussian Blur

9 MotionBlur

เช่นเดียวกับ Gaussian Effects Motion Blur เป็นเอฟเฟกต์เพื่อเบลอโหนดใน JavaFX นอกจากนี้ยังใช้เคอร์เนล Convolution แบบ Gaussian เพื่อสร้างเอฟเฟกต์การเบลอ แต่ความแตกต่างคือในเอฟเฟกต์นี้เคอร์เนล Convolution Gaussian ใช้กับมุมที่ระบุ

ชั้นเรียนชื่อ MotionBlur ของแพ็คเกจ javafx.scene.effect แสดงถึงเอฟเฟกต์ Motion Blur

10 การสะท้อนกลับ

ในการใช้เอฟเฟกต์การสะท้อนกับโหนดใน JavaFX การสะท้อนของโหนดจะถูกเพิ่มที่ด้านล่างของโหนด

ชั้นเรียนชื่อ Reflection ของแพ็คเกจ javafx.scene.effect แสดงถึงผลสะท้อน

11 SepiaTone

ในการใช้เอฟเฟกต์โทนสี Sepia กับโหนดใน JavaFX (รูปภาพโดยทั่วไป) จะถูกปรับสีด้วยสีน้ำตาลแดง

ชั้นเรียนชื่อ SepiaTone ของแพ็คเกจ javafx.scene.effect แสดงถึงเอฟเฟกต์โทนสีซีเปีย

12 เงา

เอฟเฟกต์นี้จะสร้างโหนดที่ซ้ำกันซึ่งมีขอบพร่ามัว

ชั้นเรียนชื่อ Shadow ของแพ็คเกจ javafx.scene.effect แสดงถึงเอฟเฟกต์โทนสีซีเปีย

13 เงา

เมื่อใช้เอฟเฟกต์นี้กับโหนดเงาจะถูกสร้างขึ้นหลังโหนดที่ระบุ

ชั้นเรียนชื่อ DropShadow ของแพ็คเกจ javafx.scene.effect แสดงถึงเอฟเฟกต์เงาตก

14 เงาภายใน

ในการใช้เอฟเฟกต์นี้กับโหนดเงาจะถูกสร้างขึ้นภายในขอบของโหนด

ชั้นเรียนชื่อ InnerShadow ของแพ็คเกจ javafx.scene.effect แสดงถึงเอฟเฟกต์เงาภายใน

15 แสงสว่าง

เอฟเฟกต์แสงใช้เพื่อจำลองแสงจากแหล่งกำเนิดแสง แหล่งกำเนิดแสงมีหลายประเภท ได้แก่point, distant และ spot.

ชั้นเรียนชื่อ Lighting ของแพ็คเกจ javafx.scene.effect แสดงถึงเอฟเฟกต์แสง

16 เบา

ในการใช้เอฟเฟกต์นี้กับโหนดแสงจะถูกจำลองขึ้นราวกับว่ามันถูกสร้างขึ้นโดยแหล่งกำเนิดแสงที่อยู่ห่างไกล

Distant Light Source- แหล่งที่มาซึ่งอยู่ห่างไกลจากโหนด ที่นี่แสงจะลดทอนในทิศทางเดียวจากแหล่งกำเนิด

ชั้นเรียนชื่อ Light.Distant ของแพ็คเกจ javafx.scene.effect หมายถึงแหล่งกำเนิดแสงที่อยู่ห่างไกล

17 แสง

ในการใช้เอฟเฟกต์นี้กับโหนดแสงจะถูกจำลองขึ้นราวกับว่ามันถูกสร้างขึ้นโดยไฟสปอตไลท์

Spot light Source- แสงจากแหล่งนี้จะลดทอนลงในทุกทิศทาง ความเข้มของแสงขึ้นอยู่กับระยะห่างของวัตถุจากแหล่งกำเนิด

ชั้นเรียนชื่อ Light.Spot ของแพ็คเกจ javafx.scene.effect หมายถึงแหล่งกำเนิดแสงที่อยู่ห่างไกล

18 จุด

ในการใช้เอฟเฟกต์นี้กับโหนดแสงจะถูกจำลองขึ้นราวกับว่ามันถูกสร้างขึ้นโดยแหล่งกำเนิดแสงแบบจุด

Point Light Source- แสงจากแหล่งกำเนิดนี้ลดทอนทุกทิศทางจากจุดเดียว ความเข้มของแสงขึ้นอยู่กับระยะห่างของวัตถุจากแหล่งกำเนิด

ชั้นเรียนชื่อ Point.Spot ของแพ็คเกจ javafx.scene.effect แสดงถึงไฟจุด