如何在 JavaFX 中更改图像的纵横比?
javafx.scene.image.Image 类用于将图像加载到 JavaFX 应用程序中。它支持 BMP、GIF、JPEG 和 PNG 格式。
JavaFX 提供了一个名为 javafx.scene.image.ImageView 的类,它是一个用于显示加载图像的节点。
ImageView 类的 preserveRatio 属性(布尔值)指定在使用当前 ImageView 对象显示图像时是否应保留图像的纵横比。您可以使用 setPreserveRatio() 方法为此属性设置值。
默认情况下,此属性的值为 true,即即使您更改图像的宽度或高度,显示图像的纵横比也将与源图像相同。
要更改图像的纵横比 -
通过将所需图像的 URL(字符串)作为参数传递来实例化 Image 类。
实例化 ImageView 类。
通过将上述图像对象作为参数传递给 setImage() 方法将其设置为图像。
使用 setPreserveRatio() 方法将 preserveRatio 属性设置为 false。
现在,如果您更改图像的宽度或高度,其纵横比将被改变。
示例
import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.scene.paint.Color; import javafx.stage.Stage; public class PerspectiveRatioExample extends Application { public void start(Stage stage) throws IOException { //creating the image object InputStream stream = new FileInputStream("D:\images\elephant.jpg"); Image image = new Image(stream); //Creating the image view ImageView imageView1 = new ImageView(image); //Setting the image view parameters imageView1.setX(170); imageView1.setY(10); imageView1.setFitWidth(270); imageView1.setPreserveRatio(true); //Creating the image view ImageView imageView2 = new ImageView(image); //Setting the image view parameters imageView2.setX(10); imageView2.setY(180); imageView2.setFitWidth(580); imageView2.setFitHeight(160); imageView2.setPreserveRatio(false); //Setting the Scene object Group root = new Group(imageView1, imageView2); Scene scene = new Scene(root, 595, 350, Color.BEIGE); stage.setTitle("Perspective Ratio Example"); stage.setScene(scene); stage.show(); } public static void main(String args[]) { launch(args); } }
输出
广告