如何获取不同文件的缩略图?

时间:2014-11-24 20:27:47

标签: java image swing awt thumbnails

我想获取不同文件的缩略图。它可以是图像或音乐或.docx文档。我制作了一个代码,它为我提供了该文件类型的非常小的图像,而不是实际的文件内容。例如,所有图像都具有相同的图标。但在Windows中,它将图像显示为缩略图或PDF文件第一页的图片。

这是我的工作代码,显示每种格式的常规图标的32 x 32图像。

File file = new File("D:/Desktop/image.jpg");
Icon ico = FileSystemView.getFileSystemView().getSystemIcon(file);
JLabel image = new JLabel();
image.setIcon(ico);
panel.add(image);

enter image description here

知道如何为每个文件而不是一般文件获取更大的指定图标吗?

由于

2 个答案:

答案 0 :(得分:0)

对于您需要执行以下操作的图像。

ImageIcon icn = new ImageIcon(new File("D:/Desktop/image.jpg"));
Image resized = icon.getImage().getScaledInstance(width, height, Image.SCALE_SMOOTH);
label.setIcon(new ImageIcon(resized));

某些库(例如IcePDF)也可以将PDF文件的页面转换为图像,因此您可以使用相同的方法。

答案 1 :(得分:0)

您可以按照Windows资源管理器执行操作的唯一方法是使用文件类型/内容解析器。 除非Windows没有PDF / word /图像浏览器/处理器,否则它无法生成包含(例如)PDF文件中第一页的缩略图图像。它只是常用的处理器与Windows捆绑在一起。

回到你有缩略图的问题,你可以做的是提取正在探索的文件的扩展名并保存(该类型)图像,这些图像将显示为缩略图(但不是实际内容)。但是,如上面的答案所示,图像可以很容易地缩略图。所以,你可以使用它。对于未知文件类型,您可以使用一些通用图标。

我不认为,一个探索者"读取" PDF / Word / Images等一体化只是一个探险家应用程序。