在JavaFX中创建图像缩略图

5

有人能帮忙提供一些JavaFx创建图像缩略图的代码吗?

我是新手,所以需要逐步解释说明。

1个回答

4

您可以使用Image构造函数从较大的图像创建缩略图,以下是来自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和SwingFXUtils将调整大小的图像持久保存到磁盘上。
在创建调整大小的Image之后,您可以将其放置在ImageView中进行显示:
ImageView imageView = new ImageView(image);

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接