Java:如何从文件中获取缩略图
2022-09-03 01:17:40
在Windows资源管理器(和linux gnome)中,为每个文件显示缩略图或图标。与EXE,图像,视频,txt文件,ini文件,Word文档和许多其他文件类型一样。现在是我的问题:有没有办法通过文件获得一个(最好是大的)图标。
像这样:
public static BufferedImage getThumbnail(File file) {...}
谢谢
在Windows资源管理器(和linux gnome)中,为每个文件显示缩略图或图标。与EXE,图像,视频,txt文件,ini文件,Word文档和许多其他文件类型一样。现在是我的问题:有没有办法通过文件获得一个(最好是大的)图标。
像这样:
public static BufferedImage getThumbnail(File file) {...}
谢谢
看起来没有AWT方法来做到这一点。
如果您使用的是Swing,则可以使用一种方法来获得Swing图标
...
import javax.swing.filechooser.FileSystemView;
import javax.swing.Icon;
...
Icon ico = FileSystemView.getFileSystemView().getSystemIcon(file);
你也可以把它转换回一个(很可能是一个BufferedImage,但我还没有测试过):Icon
Image
Image image = ((ImageIcon) ico).getImage();
还有一个类可以直接获取图标,但该类依赖于 JDK。在Sun JDK上,它是类。sun.awt.shell.ShellFolder
如果您使用的是SWT,事情会有点棘手。
我不认为上面的答案解决了正确的问题。Martijn 并没有要求 API 来操作图标图像。他想知道如何访问桌面的可浏览文件系统中项目的缩略图缓存。
我不认为有一种可移植的方法可以做到这一点,但是Linux世界(Gnome和KDE)遵循Freedesktop缩略图标准,可以在以下位置阅读:http://jens.triq.net/thumbnail-spec/
可能有代码,也许在Gtk(但可能不是Java)中实现了Windows的兼容层,但我不知道是否有。