2009-09-30 27 views
14

Windowsエクスプローラ(およびLinuxのgnome)では、各ファイルのサムネイルまたはアイコンが表示されます。 EXEファイル、画像、ビデオ、txtファイル、iniファイル、Word文書などの他のファイルタイプと同様です。今私の質問です:ファイル(好ましくは大きな)アイコンを取得する方法はありますか?Java:ファイルからサムネイルを取得する方法

ような何か:あなたはアイコンを取得するが、JDICを使用してアクセスAssociationServiceを見てみることができるようになります場合おかげ

答えて

12

これを行うことのないAWTの方法がないように見えます。

あなたはスイングを使用している場合、あなたは...

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

をスイングIconを取得するために使用できる方法がある...

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

あなたはまた、そのIconバックを変換することができますImage(おそらくBufferedImageですが、テストしませんでした):

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

アイコンを直接取得するクラスもありますが、このクラスはJDKに依存します。 Sun JDKの場合は、sun.awt.shell.ShellFolderクラスです。

SWTを使用している場合は、are a bit trickierがあります。

+1

これは私が欲しいものです。ありがとう、たぶんあなたは大きなアイコンのための方法も知っていますか? –

+1

はい、大きなアイコンを表示する方法はありますか? sun.awt.shell.ShellFolder.getIcon(true)を使用したいが、sun.awt.shell.ShellFolderにはアクセス制限がある。 :-( –

0

全くわからない

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

。また

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

このスレッドhttp://forums.sun.com/thread.jspa?threadID=5357995

+0

太陽の糸がもう存在しません。 – koppor

+0

java.sun.comリンクは[at archive.org](https://web.archive.org/web/20061030164547/http://java.sun.com/developer/technicalArticles/J2SE/Desktop/)で見ることができます。 jdic_assoc /)であり、[oracle.com](http://www.oracle.com/technetwork/articles/java/jdic-assoc-136531.html)の半読み取り可能なバージョンがあります。残念ながらフォーラムのリンクはアーカイブされていません。 – VGR

6

私は上記の答えが正しい質問に対処しているとは思わない。 Martijnはアイコン画像を操作するためのAPIを求めていません。彼は、ブラウズ可能なファイルシステム内の項目のサムネイル画像のデスクトップのキャッシュに到達する方法を知りたいと考えています。

私はすべてでこれを行うにはポータブルな方法はないと思うが、Linuxの世界(GNOMEとKDEが)で読むことができFreedesktopサムネイル標準に準拠:コードがあるかもしれませんhttp://jens.triq.net/thumbnail-spec/

、おそらくWindows用の互換性レイヤーを実装しているGtk(しかしおそらくJavaじゃないでしょう)でもありますが、もしあれば私はそれを認識していません。

3

プラットフォームに依存しない(つまり純粋なJava)ソリューションをお探しの場合は、JavaThumbnailerをご覧ください。ただし、まだベータ版であり、サポートされているファイルの種類が限られています。

関連する問題