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 แสดงถึงไฟจุด |