gpt4 book ai didi

image - 如何在 JAVAFX 中加载计算机目录图像

转载 作者:行者123 更新时间:2023-12-01 23:16:01 25 4
gpt4 key购买 nike

我正在尝试将我的计算机文件夹图像加载到缩略图墙上。我读过on a thread来自另一个论坛的 ImageView “url”实例变量不支持系统路径。我尝试了那里的解决方案,但它抛出异常:java.lang.OutOfMemoryError:Java堆空间,因为它不断读取文件

另一个问题是它不断向我发出使用包 javafx.ext -> SwingUtils.toFXImage 方法的警告。

我也尝试过这样输入网址:

"file://localhost//Users/USER/Pictures/Camera/test/1.JPG"

我尝试显示多个图像,但它总是只显示 3 到 4 个图像。

我检查了ImageView给出的错误函数,它并不表明我的图像读取遇到错误。

还有其他选择吗?

代码

function load() {
println("RUNTIME {Runtime.getRuntime().maxMemory()}");
System.gc();
Runtime.getRuntime().freeMemory();

//MAC Folder PATH
var path: String = "/Users/username/Pictures/camera/test/1.JPG";;
var file: File = new File(path);

//http://download.oracle.com/docs/cd/E17802_01/javafx/javafx/1.3/docs/api/javafx.ext.swing/javafx.ext.swing.SwingUtils.html

//public toFXImage(image: java.awt.image.BufferedImage) : Image
//Creates a JavaFX Image from a BufferedImage.
img = SwingUtils.toFXImage(ImageIO.read(file));
}

最佳答案

目前尚不清楚您到底想做什么。如果您谈论的是 JavaFX 2.0,则以下代码有效。如果您要加载大量图像并且需要节省内存,则只需为一次要显示的数量创建足够的 ImageView 即可。然后,当您翻阅图像时,您可以交换 ImageView 中包含的 Image 对象。

public void start(Stage primaryStage) {
primaryStage.setTitle("Hello World");
StackPane root = new StackPane();
Scene scene = new Scene(root, 300, 250);

File file = new File("/System/Library/CoreServices/loginwindow.app/Contents/Resources/LogOut.png");
Image image = new Image(file.toURI().toString());
ImageView iv = new ImageView(image);

root.getChildren().add(iv);
primaryStage.setScene(scene);
primaryStage.show();
}

关于image - 如何在 JAVAFX 中加载计算机目录图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58352061/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com