축소판 그림 처리기

Windows Vista는 이전 버전의 Windows보다 파일별 미리 보기 이미지를 더 많이 사용합니다. Windows Vista는 모든 보기, 대화 상자 및 이를 제공하는 모든 파일 형식에 사용합니다. 다른 애플리케이션도 썸네일을 사용할 수 있습니다. 축소판 그림 표시도 변경되었습니다. 이제 Windows XP에서 제공되는 아이콘 및 축소판 그림과 같은 개별 크기가 아닌 사용자가 선택할 수 있는 크기의 연속 스펙트럼을 사용할 수 있습니다.

참고

라이브 아이콘이라고 하는 이러한 썸네일이 들릴 수 있습니다.

 

32비트 해상도 및 256x256픽셀의 축소판 그림이 Windows Vista UI에서 자주 사용됩니다. 파일 형식 소유자는 해당 크기로 썸네일을 표시할 준비가 되어 있어야 합니다. 또한 특정 파일의 내용을 반영하는 썸네일의 비정적 이미지를 제공해야 합니다. 예를 들어 텍스트 파일의 축소판 그림에는 텍스트가 포함된 문서의 미니어처 버전이 표시되어야 합니다.

IThumbnailProvider 인터페이스는 IExtractImage가 대신 사용되었을 때 이전보다 썸네일을 더 쉽고 간단하게 제공하기 위해 도입되었습니다. IExtractImage를 사용하는 기존 코드는 Windows Vista에서 여전히 유효합니다. 그러나 IExtractImage세부 정보 창에서 지원되지 않습니다.

이 항목에서는 다음과 같은 내용에 대해 설명합니다.

미리 보기 프로세스

썸네일 처리기를 포함한 처리기는 기본적으로 별도의 프로세스에서 실행됩니다. 다음과 같이 IShellItem::BindToHandler 호출에서 NULL 값을 바인딩 컨텍스트로 전달하여 처리기가 in-process를 실행하도록 강제할 수 있습니다.

IShellItem::BindToHandler(NULL, BHID_ThumbnailHandler,..)

이 예제와 같이 레지스트리에서 DisableProcessIsolation 항목을 설정하여 기본적으로 프로세스가 부족하지 않도록 옵트아웃할 수도 있습니다. CLSID(클래스 식별자) {E357FCCD-A995-4576-B01F-234630154E96}은 IThumbnailProvider 구현에 대한 CLSID입니다.

HKEY_CLASSES_ROOT
   CLSID
      {E357FCCD-A995-4576-B01F-234630154E96}
         DisableProcessIsolation = 1

썸네일 캐시 및 크기 조정

미리 보기가 필요한 경우 Windows는 먼저 이미지에 대한 미리 보기 캐시를 확인합니다. 이미지를 캐시에 찾을 수 없는 경우 미리 보기 추출기가 호출됩니다. 또한 이미지의 마지막 수정 시간이 캐시의 복사본보다 낫을 때 호출됩니다.

이 캐시의 썸네일 이미지는 개별 크기 집합에 저장됩니다. 모든 크기는 픽셀 단위로 제공됩니다.

  • 32x32
  • 96x96
  • 256x256
  • 1024 x 1024

참고

이러한 값은 변경될 수 있습니다. 코드는 특정 크기가 항상 사용된다고 가정해서는 안 됩니다.

 

이미지가 정사각형이 아니면 직접 패딩하면 안 됩니다. Windows는 원래 가로 세로 비율을 준수하고 이미지를 제곱 크기로 패딩해야 합니다.

정확히 일치하는 이미지가 없는 한 특정 크기의 이미지가 요청되면 Windows Vista는 항상 다음으로 큰 이미지를 검색하고 요청된 크기로 축소합니다. 이미지는 이전 버전의 Windows에서와 같이 크기가 확장되지 않습니다.

다음 표에서는 요청된 크기와 사용 가능한 크기 간의 관계에 대한 몇 가지 예를 제공합니다.

제공하는 최대 이미지 크기 추출기에서 요청한 크기 사용자가 제공한
156x120 256x256 156x120(패딩 안 함, 가로 세로 비율 유지)
2048x1024 256x256 256x128(패딩 안 함, 가로 세로 비율 유지)

 

레지스트리에서 연결된 앱의 프로그램 ID 항목의 일부로 컷오프 지점을 선언할 수 있습니다. 이 크기보다 썸네일은 사용되지 않습니다.

HKEY_CLASSES_ROOT
   .{ProgId}
      ThumbnailCutoff

ThumbnailCutoff 항목은 이러한 REG_DWORD 값 중 하나입니다.

컷오프 HighDPI 중요
0 32x32
1 16x16
2 48x48
3 16x16 Yes

인치당 높은 점(dpi) 민감도는 썸네일의 픽셀 크기가 더 큰 dpi에 맞게 자동으로 조정됨을 의미합니다. instance 경우 96dpi의 32x32 이미지는 120dpi의 40x40 이미지입니다.

ThumbnailCutoff 항목을 지정하지 않으면 기본 컷오프는 20x20(dpi에 민감하지 않음)입니다.

축소판 그림 오버레이

축소판 그림의 오른쪽 아래 모서리에 표시되는 작은 이미지인 축소판 그림 오버레이는 개발자가 썸네일에 브랜드 식별을 적용할 수 있는 기회를 제공합니다. 오버레이는 다음과 같이 연결된 앱의 프로그램 ID 항목의 일부로 레지스트리에 선언됩니다.

HKEY_CLASSES_ROOT
   .{ProgId}
      TypeOverlay

TypeOverlay 항목에는 다음과 같이 해석되는 REG_SZ 값이 포함됩니다.

  • 값이 와 같은 ISVComponent.dll,-155리소스 참조(DLL에 포함된 .ico 파일)인 경우 해당 이미지는 해당 파일 이름 확장명을 가진 파일의 오버레이로 사용됩니다. 이 예제에서 155 는 리소스 ID이며 DLL이 표준 경로(예: C:/Windows/System32)에 없는 경우 DLL 이름 대신 전체 경로가 필요합니다.
  • 값이 빈 문자열이면 이미지에 오버레이가 적용되지 않습니다.
  • 값이 없으면 연결된 애플리케이션의 기본 아이콘이 사용됩니다.

썸네일의 오버레이는 이 메커니즘을 통해서만 제공되며 Windows에서 적용해야 합니다. 오버레이를 직접 적용하지 마세요.

축소판 그림 장식

그림자와 같은 장식은 현재 선택한 사용자의 테마에 따라 축소판 그림에 적용됩니다. 장식은 Windows에서 제공합니다. 직접 만들지 마세요. Windows는 언제든지 특정 장식의 모양을 변경할 수 있으므로 소유를 제공하면 시스템과 동기화되지 않을 위험이 있습니다. 썸네일은 오래되거나 제자리에서 나올 수 있습니다.

잠재적인 장식은 다음과 같이 레지스트리에서 연결된 앱의 프로그램 ID 항목의 일부로 선언됩니다.

HKEY_CLASSES_ROOT
   .{ProgId}
      Treatment

처리 항목에는 다음 REG_DWORD 값 중 하나가 포함됩니다.

의미
0 장식 없음
1 그림자
2 사진 테두리
3 비디오 스프로킷

그림자는 기본적으로 이미지에 적용됩니다.

썸네일 처리기 등록

썸네일 처리기의 등록은 표준 파일 연결을 기반으로 합니다.

썸네일 처리기 셸 확장의 GUID는 입니다 E357FCCD-A995-4576-B01F-234630154E96.

IThumbnailProvider

썸네일 처리기 빌드

썸네일 처리기 지침