Module  javafx.graphics
软件包  javafx.scene.paint

Class ImagePattern



  • public final class ImagePattern
    extends Paint

    ImagePattern类用图像模式填充形状。 用户可以指定锚定矩形,该矩形定义图像相对于形状的左上角的位置,宽度和高度。 如果形状延伸出锚定矩形,图像将被平铺。

    如果将proportional变量设置为true(默认值),则应该相对于单位平方(0.0-> 1.0)指定锚矩形,并将横跨形状进行拉伸。 如果将proportional变量设置为false,则应在形状的局部坐标系中指定锚矩形,并且图像将被拉伸以适合锚矩形。 锚矩形不会在整个形状上伸展。

    下面的例子演示了使用proportional变量。 顶行上的形状使用比例坐标(默认值)来指定锚矩形。 底行上的形状使用绝对坐标。 花图像被拉伸以填充整个三角形形状,而点图案图像被平铺在圆形内。

       import javafx.scene.Scene; import javafx.scene.image.Image; import javafx.scene.paint.ImagePattern; import javafx.scene.shape.Circle; import javafx.scene.shape.Polygon; import javafx.stage.Stage; public class HelloImagePattern extends Application { private static final String flowerURL = "file:flower.png"; private static final String dotsURL = "file:dots.png"; @Override public void start(Stage stage) { stage.setTitle("Image Pattern"); Group root = new Group(); Scene scene = new Scene(root, 600, 450); Image dots = new Image(dotsURL); Image flower = new Image(flowerURL); Polygon p = new Polygon(); p.setLayoutX(10); p.setLayoutY(10); p.getPoints().add(50.0); p.getPoints().add(0.0); p.getPoints().add(100.0); p.getPoints().add(100.0); p.getPoints().add(0.0); p.getPoints().add(100.0); p.setFill(new ImagePattern(flower, 0, 0, 1, 1, true)); root.getChildren().add(p); Polygon p2 = new Polygon(); p2.setLayoutX(10); p2.setLayoutY(120); p2.getPoints().add(50.0); p2.getPoints().add(0.0); p2.getPoints().add(100.0); p2.getPoints().add(100.0); p2.getPoints().add(0.0); p2.getPoints().add(100.0); p2.setFill(new ImagePattern(flower, 0, 0, 100, 100, false)); root.getChildren().add(p2); Circle circ = new Circle(50); circ.setTranslateX(120); circ.setTranslateY(10); circ.setCenterX(50); circ.setCenterY(50); circ.setFill(new ImagePattern(dots, 0.2, 0.2, 0.4, 0.4, true)); root.getChildren().add(circ); Circle circ2 = new Circle(50); circ2.setTranslateX(120); circ2.setTranslateY(10); circ2.setCenterX(50); circ2.setCenterY(50); circ2.setFill(new ImagePattern(dots, 20, 20, 40, 40, false)); root.getChildren().add(circ2); stage.setScene(scene); stage.show(); }  

    以上代码产生以下内容:

    一个可视化渲染的HelloImagePattern示例

    从以下版本开始:
    JavaFX 2.2
    • 构造方法详细信息

      • ImagePattern

        public ImagePattern​(Image image)
        从指定的图像创建一个新的ImagePattern实例。 默认值用于所有其他参数。
        参数
        image - 用作油漆的图像。
        异常
        NullPointerException - 如果图像为空。
        IllegalArgumentException - 如果图像未完成加载,即进度为<1。
      • ImagePattern

        public ImagePattern​(Image image,
                            double x,
                            double y,
                            double width,
                            double height,
                            boolean proportional)
        创建一个新的ImagePattern实例。
        参数
        image - 用作油漆的图像。
        x - 锚矩形的x原点。
        y - 锚矩形的y原点。
        width - 锚矩形的宽度。
        height - 锚矩形的高度。
        proportional - 坐标是否与ImagePattern填充的形状成比例
        异常
        NullPointerException - 如果图像为空。
        IllegalArgumentException - 如果图像未完成加载,即进度是<1。
    • 方法详细信息

      • getImage

        public final Image getImage​()
        获取要用作油漆的图像。
        结果
        图像用作油漆。
      • getX

        public final double getX​()
        获取锚矩形的x原点。
        Default value:
        0.0
        结果
        锚矩形的x原点。
      • getY

        public final double getY​()
        获取锚矩形的y原点。
        Default value:
        0.0
        结果
        锚矩形的y原点。
      • getWidth

        public final double getWidth​()
        获取锚矩形的宽度。
        Default value:
        1.0
        结果
        新新新新旗新新新新旗新新旗旗新新新新旗新新旗旗新新旗新新200新新新
      • getHeight

        public final double getHeight​()
        获取锚矩形的高度。
        Default value:
        1.0
        结果
        锚矩形的高度。
      • isProportional

        public final boolean isProportional​()
        获取一个布尔值,指示开始和结束位置是成比例还是绝对。 如果该标志为真,则两个端点在坐标空间中定义,其中[0..1]范围内的[0..1]被缩放以映射到图案填充的形状的边界上。 如果该标志为假,则在该节点的本地坐标系中指定坐标。
        Default value:
        真正
        结果
        布尔值,如果此颜色成比例,则为true。
      • isOpaque

        public final boolean isOpaque​()
        描述从类别复制Paint
        获取此Paint是否完全不透明。 不透明的油漆是其任何颜色都没有阿尔法成分的油漆。 油漆可能是不透明的,但是如果不能容易地确定涂料是否实际上是不透明的,则返回假。 例如,ImagePattern可能无法廉价地确定其不透明度。
        Specified by:
        isOpaquePaint
        结果
        如果油漆是不透明的,则为真,如果不透明或不能确定则为假。