如何在 JavaFX 中更改图像的纵横比?
javafxobject oriented programmingprogramming更新于 2025/4/14 16:07:17
javafx.scene.image.Image 类用于将图像加载到 JavaFX 应用程序中。它支持 BMP、GIF、JPEG 和 PNG 格式。
JavaFX 提供了一个名为 javafx.scene.image.ImageView 的类,它是一个用于显示已加载图像的节点。
ImageView 类的 retainRatio 属性(布尔值)指定在使用当前 ImageView 对象显示图像时是否应保留图像的纵横比。您可以使用 setPreserveRatio() 方法将值设置为此属性。
默认情况下,此属性的值为 true,即,尽管您更改了图像的宽度或高度,但显示图像的纵横比将与源图像相同。
要更改图像的纵横比 −
通过将所需图像的 URL(字符串)作为参数传递来实例化 Image 类。
实例化 ImageView 类。
通过将上述图像对象作为参数传递给 setImage() 方法,将图像设置为该类。
使用 setPreserveRatio() 方法将 retainRatio 属性设置为 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 { //创建图像对象 InputStream stream = new FileInputStream("D:\images\elephant.jpg"); Image image = new Image(stream); //创建图像视图 ImageView imageView1 = new ImageView(image); //设置图像视图参数 imageView1.setX(170); imageView1.setY(10); imageView1.setFitWidth(270); imageView1.setPreserveRatio(true); //创建图像视图 ImageView imageView2 = new ImageView(image); //设置图像视图参数 imageView2.setX(10); imageView2.setY(180); imageView2.setFitWidth(580); imageView2.setFitHeight(160); imageView2.setPreserveRatio(false); //设置场景对象 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); } }