java - 在 javafx 中创建图像缩略图

标签 java javafx thumbnails

有人可以帮忙编写一些代码,以便在 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可以与 SwingFXUtils 一起使用如果您愿意,将调整大小的图像保存到磁盘。

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

ImageView imageView = new ImageView(image);

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

关于java - 在 javafx 中创建图像缩略图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34786958/

相关文章:

java - 无法启动本地kafka代理

Java 'Object.clone' 与等于 ('= ...' )

java - TestFX中有测试选择框选择的功能吗?

php - 获取 YouTube 缩略图并将其保存到网络服务器

java - 使用 JPanel/JFrame Java 创建命运之轮式的拼图板

java - 从 FOR 循环中提取返回值

JavaFX8 演示文稿 View (重复 Pane 和内容)

java - 为什么 XYChart 中轴的父节点不是图表本身? (JavaFX)

html - 缩略图画廊高度问题

jquery - FancyBox 画廊集成