2009-09-30 14 views
14

den küçük olsun Nasıl her dosya bir küçük resim veya simgesi için gösterir. EXE'ler, resimler, videolar, txt dosyaları, ini dosyaları, Word belgeleri ve diğer dosya türleri gibi. Şimdi benim sorum: Dosyaya göre (tercihen büyük) bir simge elde etmenin bir yolu var. gibiJava: windows explorer (ve linux gnome) bir dosyadan

şey:

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

Teşekkür

cevap

12

Bunu yapmanın hiçbir AWT yolu yoktur gibi görünüyor.

Eğer Swing kullanarak ediyorsanız, bir salıncak Icon almak için kullanabileceğiniz bir yöntem ...

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

...

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

Ayrıca bu Icon geri dönüştürebilirsiniz var bir Image içine (büyük olasılıkla bir BufferedImage, ama onu test etmedim):

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

Doğrudan simgeyi almak için bir sınıf var, ancak bu sınıf JDK'ya bağımlı. Sun JDK'sında sun.awt.shell.ShellFolder sınıfı var.

Eğer SWT kullanıyorsanız, işler are a bit trickier.

+1

İstediğim bu. Teşekkürler, belki de daha büyük ikonlar için bir yol biliyor musunuz? –

+1

Evet, daha büyük ikonlar almanın bir yolu var mı? Ben sun.awt.shell.ShellFolder.getIcon (true) kullanmak istiyorum, ancak sun.awt.shell.ShellFolder erişim kısıtlaması vardır. :-( –

0

Simgeyi olsun ama JDIC kullanılarak erişilebilir AssociationService bakmak mümkün olacak eğer tam olarak emin değiliz.

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

Ayrıca, bu iplik http://forums.sun.com/thread.jspa?threadID=5357995

+0

güneş ipliği artık mevcut değil. – koppor

+0

java.sun.com bağlantısı [at archive.org] adresinden görüntülenebilir (https://web.archive.org/web/20061030164547/http://java.sun.com/developer/technicalArticles/J2SE/Desktop/ jdic_assoc /) ve oracle.com'da yarı okunabilir bir versiyon var (http://www.oracle.com/technetwork/articles/java/jdic-assoc-136531.html). Forum linki maalesef arşivlenmiyor. – VGR

6

Ben cevaplar yukarıda doğru soruyu ele sanmıyorum. Martijn, ikon görüntülerini manipüle etmek için API istemiyor. Göz atılabilir dosya sistemindeki öğeler için masaüstünün küçük resim görüntülerinin önbelleğine nasıl ulaşılacağını bilmek istiyor.

Ben hiç bunu yapmak için taşınabilir bir yolu var sanmıyorum ama Linux dünyası (Gnome ve KDE) okunabilir freedesktop'un küçük resim standardına uyması: Olabilir kodu http://jens.triq.net/thumbnail-spec/

, belki pencereler için bir uyumluluk katmanı uygular, ama Gtk (ama muhtemelen Java) ben varsa bunun farkında değilim.

3

bir platform bulurlar bağımsız (yani saf java) çözümü arıyorsanız, JavaThumbnailer bir göz Hava. Yine de beta, ve sınırlı sayıda desteklenen dosya türleri var.

İlgili konular