在 javafx 中创建图像缩略图

Creating a image thumbnail in javafx

有人可以帮忙编写一些在 JavaFx 中为图像创建缩略图的代码吗?

我是这方面的新手,因此不胜感激一步一步的解释。

您可以使用图像构造函数从较大的图像创建缩略图,这里是 Image javadoc:

中的示例
// load an image and resize it to width of 100 while preserving its
// original aspect ratio, using faster filtering method
// The image is downloaded from the supplied URL through http protocol
Image image3 = new Image("http://sample.com/res/flower.png", 100, 0, false, false);

Image 构造函数所做的是加载图像并调整其大小,仅将图像像素存储在内存中,因此它是 I/O 和处理器密集型,但内存较少。

请注意,如果你经常这样做,它会变得非常昂贵,这就是为什么一些图像查看系统在创建缩略图后将它们保存到磁盘,以便下次需要缩略图时读取它从磁盘而不是读取和调整整个原始文件的大小。 ImageIO can be used with SwingFXUtils 如果您愿意,将调整大小的图像保存到磁盘。

创建调整大小后的图片后,您可以将其放置在 ImageView 中进行显示:

ImageView imageView = new ImageView(image);

您可以使用 ImageView 通过操纵 ImageView 的视口或 fitHeight 和 fitWidth 属性来调整图像视图的大小。如果您有很多缩略图,您将不希望这样做。在 ImageView 而不是 Image 构造函数中调整图像的大小意味着支持 ImageView 的图像保持完整大小,当您有大量图像时,这将很快消耗大量内存。