javafx.scene.image.Image类用于图像加载到JavaFX应用程序。这支持BMP,GIF,JPEG和PNG格式。
JavaFX提供了一个名为javafx.scene.image.ImageView的类,该类用于显示加载的图像。
ImageView类的booleanRatio属性(布尔值)指定在使用当前ImageView对象显示图像时,是否应保留图像的高宽比。您可以使用setPreserveRatio()方法将值设置为此属性。
默认情况下,此属性的值为true,即,即使您更改图像的宽度或高度,显示的图像的纵横比也将与源相同。
更改图像的宽高比-
通过传递所需图像的URL(字符串)作为参数来实例化Image类。
实例化ImageView类。
通过将图像对象作为参数传递给setImage()方法来为其设置图像。
使用setPreserveRatio()方法将prepareRatio属性设置为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); } }
输出结果