我正在将图像上传到后端并生成下载链接,我想下载图像并将其显示在javafx中,我找到了此解决方案:
ImageView imageView = ImageViewBuilder.create()
.image(new Image(imageSource))
.build();
但是我正在使用JavaFx 11,并且javafx场景imageView包中似乎没有像ImageViewBuilder这样的东西?有什么想法或替代方法吗?
答案 0 :(得分:2)
构建器类在不久前已被弃用。有关更多信息,请参见JDK-8124188,JDK-8092861和this mailing list。也就是说,Image
类仍然可以加载远程图像,但是您应该使用构造函数而不是构造函数。
来自documentation(强调我的):
Image
类表示图形图像,用于从指定的URL
加载图像。支持的图像格式为:
- BMP
- GIF
- JPEG
- PNG
可以在加载图像时调整图像的大小(例如,以减少图像消耗的内存量)。该应用程序可以指定缩放时使用的过滤质量,以及是否保留原始图像的宽高比。
URL
支持的所有URL都可以传递给构造函数。如果传递的字符串不是有效的URL
,而是路径,则{{1}在这种情况下,将在类路径上搜索}。使用
ImageView
显示此类加载的图像。同一Image
实例可以由多个Image
显示。
因此您可以使用:
ImageView
第二个选项利用了String remoteUrl = ...;
Image image = new Image(remoteUrl);
ImageView view = new ImageView(image);
// or...
ImageView view = new ImageView(remoteUrl);
构造函数。请注意,它使您无法在后台加载图像(无自定义代码),ImageView(String)
的构造函数为其提供了选择。如果您想控制自己的Image
,也可以使用适当的InputStream
构造函数来实现。在这种情况下,请不要忘记关闭Image
。