如何在 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);
}
}输出

广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP