JavaFX | ImagePattern 类
ImagePattern 是 JavaFX 的一部分。此类用于用图像图案填充形状。用户可以指定锚矩形,它定义了图像相对于形状左上角的位置、宽度和高度。如果形状超出了锚矩形,则图像是平铺的。
类的构造函数:
- ImagePattern(Image i) :使用指定图像创建 ImagePattern 的新实例。
- ImagePattern(Image i, double x, double y, double width, double height, boolean prop) :创建具有指定 x、y 坐标、定义的宽度和高度以及是否成比例的图像。
常用方法:
Method | Explanation |
---|---|
getHeight() | Returns the height of the image pattern. |
getWidth() | Returns the width of image pattern. |
getImage() | Returns the image of the image pattern. |
getX() | Returns the X origin of the anchor rectangle. |
getY() | Returns the Y origin of the anchor rectangle. |
isOpaque() | Returns whether the paint is completely opaque or not. |
isProportional() | Returns whether the start and end locations is completely proportional or not. |
下面的程序说明了 ImagePattern 类的使用:
- 从图像创建 ImagePattern 并将其应用于矩形的Java程序:在此程序中,我们将从图像创建名为image_pattern的 ImagePattern。使用 FileInputStream 导入图像。使用setFill()函数将此 image_pattern 添加到矩形。创建一个 VBox 并将矩形添加到vbox 。将vbox添加到场景中,将场景添加到舞台中。调用show()函数来显示结果。
// Java Program to create a ImagePattern from // a image and apply it to the rectangle import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.*; import javafx.scene.layout.*; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.control.Label; import javafx.stage.Stage; import javafx.scene.image.*; import java.io.*; import javafx.scene.paint.*; import javafx.scene.shape.*; public class ImagePattern_1 extends Application { // launch the application public void start(Stage s) throws Exception { // set title for the stage s.setTitle("Creating ImagePattern"); // create a input stream FileInputStream input = new FileInputStream("D:\\GFG.png"); // create a image Image image = new Image(input); // create ImagePattern ImagePattern image_pattern = new ImagePattern(image); // create a Rectangle Rectangle rect = new Rectangle(100, 100, 200, 150); // set fill for rectangle rect.setFill(image_pattern); // create a VBox VBox vbox = new VBox(rect); // create a scene Scene sc = new Scene(vbox, 200, 200); // set the scene s.setScene(sc); s.show(); } public static void main(String args[]) { // launch the application launch(args); } }
输入图像:
输出:
- Java程序从图像创建 ImagePattern,设置 x、y 坐标、高度和宽度,以及是否成比例并将其应用于矩形:在此程序中,我们将从图像创建一个名为image_pattern的 ImagePattern。使用 FileInputStream 导入图像。指定锚矩形的 x、y 坐标、它的高度、宽度以及是否成比例地绕过值作为 ImagePattern 的构造函数的参数。使用setFill()函数将此 image_pattern 添加到矩形。创建一个 VBox 并将矩形添加到vbox 。将vbox添加到场景中,将场景添加到舞台中。调用show()函数来显示结果。
// Java Program to create an ImagePattern form an image, // set the x, y coordinate, its height and width, and // whether it is proportional or not and apply it to // the rectangle import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.*; import javafx.scene.layout.*; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.control.Label; import javafx.stage.Stage; import javafx.scene.image.*; import java.io.*; import javafx.scene.paint.*; import javafx.scene.shape.*; public class ImagePattern_2 extends Application { // launch the application public void start(Stage s) throws Exception { // set title for the stage s.setTitle("Creating ImagePattern"); // create a input stream FileInputStream input = new FileInputStream("D:\\GFG.png"); // create a image Image image = new Image(input); // create ImagePattern ImagePattern image_pattern = new ImagePattern(image, 100, 100, 100, 100, false); // create a Rectangle Rectangle rect = new Rectangle(100, 100, 200, 150); // set fill for rectangle rect.setFill(image_pattern); // create a VBox VBox vbox = new VBox(rect); // create a scene Scene sc = new Scene(vbox, 200, 200); // set the scene s.setScene(sc); s.show(); } // Main Method public static void main(String args[]) { // launch the application launch(args); } }
输入图像:
输出:
注意:以上程序可能无法在在线 IDE 中运行,请使用离线编译器。
参考: https://docs.oracle.com/javase/8/javafx/api/javafx/scene/paint/ImagePattern.html