JavaFX | Clase de patrón de imagenImagePattern Class

ImagePattern es una parte de JavaFX. Esta clase se usa para llenar una forma con un patrón de imagen. Un usuario puede especificar el rectángulo de anclaje, que define la posición, el ancho y la altura de la imagen en relación con la esquina superior izquierda de la forma. Si la forma se extiende fuera del rectángulo de anclaje, la imagen se muestra en mosaico.

Constructores de la clase:

  1. ImagePattern(Image i) : Crea una nueva instancia de ImagePattern con la imagen especificada.
  2. ImagePattern(Image i, double x, double y, double width, double height, boolean prop) : crea una imagen con las coordenadas x, y especificadas, un ancho y una altura definidos y si es proporcional o no.

Métodos comúnmente utilizados:

Método Explicación
obtenerAltura() Devuelve la altura del patrón de la imagen.
obtenerAncho() Devuelve el ancho del patrón de la imagen.
obtener la imagen() Devuelve la imagen del patrón de imagen.
obtenerX() Devuelve el origen X del rectángulo ancla.
obtenerY() Devuelve el origen Y del rectángulo ancla.
esOpaco() Devuelve si la pintura es completamente opaca o no.
es proporcional() Devuelve si las ubicaciones de inicio y fin son completamente proporcionales o no.

Los siguientes programas ilustran el uso de la clase ImagePattern:

  1. Programa Java para crear un ImagePattern a partir de una imagen y aplicarlo al rectángulo: En este programa crearemos un ImagePattern llamado image_pattern a partir de una imagen. Importe la imagen usando un FileInputStream. Agrega este image_pattern al rectángulo usando la función setFill() . Cree un VBox y agregue el rectángulo al vbox . Agregue el vbox a la escena y agregue la escena al escenario. Llame a la función show() para mostrar los resultados.

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

    Imagen de entrada:

    Producción:

  2. Programa Java para crear un ImagePattern a partir de una imagen, establecer las coordenadas x, y, su alto y ancho, y si es proporcional o no y aplicarlo al rectángulo: En este programa crearemos un ImagePattern llamado image_pattern a partir de una imagen. Importe la imagen usando un FileInputStream. Especifique las coordenadas x, y del rectángulo de anclaje, su altura, ancho y si es proporcional o no, pasando por alto los valores como argumentos del constructor de ImagePattern. Agrega este image_pattern al rectángulo usando la función setFill() . Cree un VBox y agregue el rectángulo a vbox . Agregue el vbox a la escena y agregue la escena al escenario. Llame a la función show() para mostrar los resultados.

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

    Imagen de entrada:

    Producción:

Nota: Es posible que los programas anteriores no se ejecuten en un IDE en línea; use un compilador fuera de línea.

Referencia: https://docs.oracle.com/javase/8/javafx/api/javafx/scene/paint/ImagePattern.html

Publicación traducida automáticamente

Artículo escrito por andrew1234 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *