Поделиться через


Реализация кодировщика WIC-Enabled

Знакомство

Для реализации кодировщика компонента образов Windows (WIC) требуется написание двух классов, как и для реализации декодера WIC. Интерфейсы этих классов соответствуют непосредственно обязанностям кодировщика, описанным в разделе Кодировка раздела о том, как работает компонент образов Windows.

Один из классов предоставляет службы уровня контейнера и управляет сериализацией отдельных кадров изображений в контейнере. Этот класс реализует интерфейс IWICBitmapEncoder. Если формат изображения поддерживает метаданные уровня контейнера, необходимо также реализовать интерфейс IWICMetadataBlockWriter в этом классе.

Другой класс предоставляет службы уровня кадров и выполняет фактическую кодировку битов изображения для каждого кадра в контейнере. Он также выполняет итерацию по блокам метаданных для каждого кадра и запрашивает соответствующие записи метаданных для сериализации блоков. Этот класс реализует интерфейс IWICBitmapFrameEncode и интерфейс IWICMetadataBlockWriter. Этот класс должен иметь элемент IStream, который контейнерный класс инициализирует при создании экземпляра, в который метод Commit будет сериализовать данные кадра.

В некоторых случаях, например, в необработанных форматах, автор кодека может не захотеть, чтобы приложения могли кодировать или перекодировать в необработанный формат, так как цель необработанного файла заключается в том, чтобы содержать данные датчика в том виде, в котором они поступили с камеры. В случаях, когда автор кодека не хочет включить кодировку, для добавления метаданных по-прежнему необходимо реализовать кодировщик. В этом случае кодировщик должен поддерживать только эти методы, необходимые для записи метаданных, и может копировать биты изображения, нетронутые из декодера.

Справочник

IWICBitmapEncoder

концептуальные

реализация IWICDevelopRaw

интерфейсы кодировщика

Как написать WIC-Enabled кодек

Обзор компонента Windows Imaging Component