2009-09-30 13 views
14

Windows 탐색기 (및 Linux gnome)에서 각 파일의 미리보기 이미지 또는 아이콘이 표시됩니다. EXE, 이미지, 비디오, txt- 파일, ini- 파일, Word 문서 및 다른 많은 파일 형식과 같습니다. 이제 내 질문입니다 : 파일 (선호) 큰 아이콘을 얻을 수있는 방법이 있나요. 같은자바 : 파일에서 미리보기 이미지를 가져 오는 방법

뭔가 :

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

감사

답변

12

이 일을 더 AWT 방법이없는 것 같습니다.

당신이 스윙을 사용하는 경우, 당신은 스윙 Icon를 얻을하는 데 사용할 수있는 방법 ...

import javax.swing.filechooser.FileSystemView; 
import javax.swing.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

이 아이콘을 얻을 수 있지만, JDIC를 사용하여 액세스 할 AssociationService 살펴 수있을 것입니다 경우 완전히 확실하지.

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를 요구하지 않습니다. 그는 탐색 가능한 파일 시스템의 항목에 대한 바탕 화면의 축소판 이미지 캐시를 얻는 방법을 알고 싶어합니다.

나는 모든이 작업을 수행하는 휴대용 방법이 생각하지 않지만, 리눅스 세계 (GNOME과 KDE가)에서 읽을 수 있습니다 Freedesktop 축소판 표준을 준수 : 코드가있을 수 있습니다 http://jens.triq.net/thumbnail-spec/

, 아마도 Windows 용 호환성 레이어를 구현하는 Gtk (하지만 Java는 아닐 것입니다)에있을 수 있습니다.

3

플랫 폼 독립형 (즉, 순수 자바) 솔루션을 찾고있는 경우 JavaThumbnailer을 확인하십시오. 하지만 여전히 베타 버전이며 지원되는 파일 형식의 수가 제한되어 있습니다.

관련 문제