Записи реестра Decoder-Specific

Помимо записей реестра, необходимых для всех кодировщиков и декодеров, для декодеров требуются следующие записи реестра.

Эти записи регистрируют декодер в категории декодеров компонента образов Windows (WIC). Первый GUID в этих записях — это идентификатор категории (CATID) для WICBitmapDecoders.

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

Как отмечается в разделе Обнаружение и арбитраж статьи How The Windows Imaging Component, механизм, позволяющий обнаружить соответствующий декодер для определенного изображения во время выполнения, основан на сопоставлении идентифицирующий шаблон, внедренный в файл образа, с шаблоном, указанным в записи реестра декодера. Чтобы включить обнаружение декодеров во время выполнения, необходимо зарегистрировать уникальный идентифицирующий шаблон для формата изображения следующим образом. Все эти записи реестра являются обязательными, за исключением записи 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
Значение Описание
Position Смещение в файл, в котором можно найти шаблон.
Длина Длина шаблона.
Шаблон Фактические биты, составляющие шаблон. Это биты, которые сопоставляются с идентифицирующие шаблон в файле изображения во время обнаружения.
Mask Позволяет использовать подстановочные знаки в шаблонах. Маска применяется путем выполнения логической операции И над шаблоном и маской. Любой бит в шаблоне, соответствующий биту в маске со значением 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 запрашивает средство чтения метаданных.

Значение Описание
Position Смещение в контейнере блока метаданных, где можно найти заголовок метаданных. Для блоков метаданных верхнего уровня это смещение в потоке файлов. Для блоков метаданных, вложенных в другие блоки метаданных, это смещение относительно содержащего блока метаданных.
Шаблон Фактические биты, составляющие шаблон. Это биты, которые сопоставляются с идентифицирующие шаблон в файле изображения во время обнаружения.
Mask Заголовок метаданных обычно определяется обработчиком метаданных. Следует использовать стандартный заголовок метаданных для каждого средства чтения, если по какой-либо причине шаблон должен иметь другой формат в контейнере.
DataOffset Смещение от начала заголовка метаданных, с которого начинаются фактические данные. В случаях, когда метаданные не находятся в определенном смещении от заголовка, эту запись можно опустить.

 

Основные понятия

Записи реестра, относящиеся к кодировщику

Интеграция с Фотоальбом Windows и Windows Обозреватель

Создание кодека WIC-Enabled

Общие сведения о компоненте обработки образов Windows