gpt4 book ai didi

java - 将 JarURLInputStream 用于 JavaFX 图像

转载 作者:行者123 更新时间:2023-12-02 04:55:05 25 4
gpt4 key购买 nike

在我的应用程序中,我将 JavaFX 的 Image 类与 InputStream 一起使用。 InputStream 是通过调用 URL.openStream() 提供的,它非常适合指向文件的 URL。但是,如果我的 URL 格式为 jar:file:C:/some.jar!/someImage.bmp,则图像无法正确加载。这是我正在试验的片段:

 InputStream stream = url.openStream();
Image image = new Image(stream);

StackPane stackLayout = new StackPane();
stackLayout.getChildren().add(new ImageView(image));

Stage stage= new Stage(new Scene(stackLayout));
stage.setScene(scene);
stage.show();

我使用以下方法验证了 URL 是否正确

Files.copy(stream, new File("copy-image.bmp").toPath());

这会在 jar 存档中生成文件的副本。我认为 JavaFX 的 Image 类有问题(我使用的是 2.2.67-b01)。

最佳答案

经过更多测试后,我发现这显然是(至少)JavaFX 2.2.67-b01 中的一个错误。该问题与流无关,而是与要加载的图像的位深度有关:可以毫无问题地加载 24 位图像,而尝试加载 32 位图像会导致错误。

切换到 JavaFX 8.0.31-b13 附带的 JDK 1.8.0_31 可以解决该问题。

关于java - 将 JarURLInputStream 用于 JavaFX 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28854382/

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