Decoder-Specific 레지스트리 항목

모든 인코더 및 디코더에 필요한 레지스트리 항목 외에도 디코더에 특히 다음 레지스트리 항목이 필요합니다.

이러한 항목은 WIC(Windows 이미징 구성 요소) 디코더 범주에 디코더를 등록합니다. 이러한 항목의 첫 번째 GUID는 WICBitmapDecoders에 대한 CATID(범주 식별자)입니다.

HKEY_CLASSES_ROOT
   CLSID
      {7ED96837-96F0-4812-B211-F13C24117ED3}
         Instance
            {Decoder CLSID}
               CLSID = {Decoder CLSID}
               FriendlyName = {Name of Decoder}

Windows 이미징 구성 요소 작동 방식의 검색 및 중재 섹션에서 설명한 대로 런타임에 특정 이미지를 검색할 수 있도록 하는 메커니즘은 이미지 파일에 포함된 식별 패턴을 디코더의 레지스트리 항목에 지정된 패턴과 일치시키는 데 기반합니다. 디코더의 런타임 검색을 사용하려면 다음과 같이 이미지 형식에 대한 고유한 식별 패턴을 등록해야 합니다. 다음 표에 설명된 대로 EndOfStream 항목을 제외하고 이러한 모든 레지스트리 항목이 필요합니다. 이 항목은 선택 사항입니다.

HKEY_CLASSES_ROOT
   CLSID
      {Decoder CLSID}
         Patterns
            {0}
               Position = Offset in block
               Length = Length of pattern
               Pattern = Pattern to match
               Mask = FF FF FF FF
               EndOfStream = 0|1
Description
위치 패턴을 찾을 수 있는 파일의 오프셋입니다.
길이 패턴의 길이입니다.
패턴 패턴을 구성하는 실제 비트입니다. 검색하는 동안 이미지 파일의 식별 패턴과 일치하는 비트입니다.
Mask 패턴에서 와일드카드 값을 허용합니다. 마스크는 패턴 및 마스크에 대해 논리적 AND 연산을 수행하여 적용됩니다. 값이 0인 마스크의 비트에 해당하는 패턴의 모든 비트는 무시됩니다.
EndOfStream 식별 패턴의 오프셋은 시작이 아닌 스트림의 끝에서 계산되어야 합니다. 일부 이미지 형식은 식별 패턴을 파일의 끝 또는 근처에 배치합니다. 기본값은 처음부터 검색하는 것이므로 패턴이 파일의 끝에 있지 않으면 이 항목을 생략할 수 있습니다.

 

코덱은 둘 이상의 식별 패턴을 지원할 수 있습니다. 이 경우 HKEY_CLASSES_ROOT\CLSID\{Decoder CLSID}\Patterns아래의 모든 키를 반복하고 숫자 키(예제에서는 0)를 사용하여 다양한 패턴을 구분합니다. 각 패턴의 키 아래에 네 개의 값을 각각 포함해야 합니다.

메타데이터 판독기에서 컨테이너 형식 등록

코덱에 대한 새 컨테이너 형식을 만드는 경우 메타데이터 작성기에서와 마찬가지로 이미지의 메타데이터 블록에 대한 메타데이터 판독기 검색을 지원하는 레지스트리 항목도 만들어야 합니다. 컨테이너 형식이 지원하는 각 메타데이터 형식에 대한 메타데이터 판독기의 CLSID(클래스 식별자) 아래에 다음 항목을 만들어야 합니다. (코덱이 TIFF(태그가 지정된 이미지 파일 형식) 컨테이너를 사용하는 경우 이 정보는 이미 레지스트리에 있습니다.)

HKEY_CLASSES_ROOT
   CLSID
      {Metadata Reader CLSID}
         Containers
            {Container Format GUID}
               
                  Position = Offset relative to its container
                  Pattern = Pattern used for metadata header
                  Mask = FF FF FF FF
                  DataOffset = Offset from beginning of header

메타데이터 판독기 항목도 검색에 사용되므로 디코더의 항목과 매우 유사합니다. 이러한 항목은 구성 요소 팩터리에서 컨테이너에서 지원하는 메타데이터 판독기를 찾고 IWICMetadataBlockReader 구현에서 메타데이터 판독기를 요청할 때 적절한 항목을 선택하는 데 사용됩니다.

Description
위치 메타데이터 헤더를 찾을 수 있는 메타데이터 블록의 컨테이너에 있는 오프셋입니다. 최상위 메타데이터 블록의 경우 파일 스트림의 오프셋입니다. 다른 메타데이터 블록에 중첩된 메타데이터 블록의 경우 포함된 메타데이터 블록을 기준으로 하는 오프셋입니다.
패턴 패턴을 구성하는 실제 비트입니다. 검색하는 동안 이미지 파일의 식별 패턴과 일치하는 비트입니다.
Mask 메타데이터 헤더는 일반적으로 메타데이터 처리기에 의해 정의됩니다. 어떤 이유로 패턴이 컨테이너에서 다른 형식이어야 하는 경우가 아니면 각 판독기마다 표준 메타데이터 헤더를 사용해야 합니다.
DataOffset 실제 데이터가 시작되는 메타데이터 헤더의 시작 부분부터의 오프셋입니다. 메타데이터가 헤더의 특정 오프셋에 없는 경우 이 항목을 생략할 수 있습니다.

 

개념

인코더별 레지스트리 항목

Windows 사진 갤러리 및 Windows Explorer 통합

WIC-Enabled CODEC를 작성하는 방법

Windows 이미징 구성 요소 개요