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:
- ImagePattern(Image i) : Crea una nueva instancia de ImagePattern con la imagen especificada.
- 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:
- 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:
- 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