如何在 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); } }
輸出
廣告