18 Stimmen

Java: Wie man die Miniaturansicht einer Datei abruft

Im Windows-Explorer (und Linux Gnome) wird für jede Datei ein Miniaturbild oder Symbol . Wie bei EXEs, Bildern, Videos, txt-Dateien, ini-Dateien, Word-Dokumenten und so vielen anderen Dateitypen. Nun ist meine Frage: Gibt es eine Möglichkeit, ein (möglichst großes) Symbol pro Datei zu erhalten.

Etwa so:

public static BufferedImage getThumbnail(File file) {...}

Gracias

18voto

Powerlord Punkte 84404

Es sieht so aus, als gäbe es keine AWT-Möglichkeit, dies zu tun.

Wenn Sie Swing verwenden, gibt es eine Methode, die Sie verwenden können, um eine Swing Icon ...

import javax.swing.filechooser.FileSystemView;
import javax.swing.Icon;

...

Icon ico = FileSystemView.getFileSystemView().getSystemIcon(file);

Sie können das auch umwandeln Icon zurück in eine Image (höchstwahrscheinlich ein BufferedImage, aber ich habe es nicht getestet):

Image image = ((ImageIcon) ico).getImage();

Es gibt auch eine Klasse, um das Symbol direkt zu erhalten, aber diese Klasse ist JDK-abhängig. Auf Sun JDK's ist es die sun.awt.shell.ShellFolder Klasse.

Wenn Sie SWT verwenden, sind die Dinge sind etwas schwieriger .

6voto

Andy Ross Punkte 11205

Ich glaube nicht, dass die obigen Antworten auf die richtige Frage abzielen. Martijn fragt nicht nach der API für die Manipulation von Symbolbildern. Er möchte wissen, wie man auf den Desktop-Cache von Miniaturbildern für Elemente im durchsuchbaren Dateisystem zugreifen kann.

Ich glaube nicht, dass es einen portablen Weg gibt, dies zu tun, aber die Linux-Welt (Gnome und KDE) hält sich an den Freedesktop-Thumbnail-Standard, der unter www. freedesktop.com nachgelesen werden kann: http://jens.triq.net/thumbnail-spec/

Möglicherweise gibt es Code, vielleicht in Gtk (aber wahrscheinlich nicht in Java), der eine Kompatibilitätsschicht für Windows implementiert, aber ich bin mir dessen nicht bewusst, wenn es ihn gibt.

3voto

giraff Punkte 4359

Wenn Sie nach einer plattformunabhängigen (d.h. reinen Java-) Lösung suchen, sollten Sie einen Blick auf JavaThumbnailer . Es handelt sich allerdings noch um eine Beta-Version, die nur eine begrenzte Anzahl von Dateitypen unterstützt.

0voto

pjp Punkte 16064

Ich bin mir nicht ganz sicher, ob Sie das Symbol bekommen können, aber schauen Sie mal unter AssociationService die über JDIC zugänglich ist.

http://java.sun.com/developer/technicalArticles/J2SE/Desktop/jdic_assoc/

Auch dieses Thema http://forums.sun.com/thread.jspa?threadID=5357995

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X