Поддержка IWICDevelopRaw
Чтобы приложения могли поддерживать обработку RAW, разработчикам кодека настоятельно рекомендуется реализовать все параметры IWICDevelopRaw. Для Windows 7 компоненту обработки образов Windows (WIC) потребуется поддержка всех IWICDevelopRaw. Если формат файла не поддерживает все эти параметры, следует изменить формат файла изображения.
Чтобы включить базовую обработку RAW в приложениях, кодеки должны поддерживать корректировки экспозиции (ExposureCompensationSupport) и цвета (например, KelvinWhitePointSupport и TintSupport). Кроме того, настоятельно рекомендуется выводить данные в определенные цветовые пространства и форматы пикселей. Поддержка других корректировок, конечно, поощряется и требуется для Windows 7.
Кодек RAW должен обеспечивать базовую поддержку поворота изображений и быстрого предварительного просмотра. Поворот можно указать двумя различными способами:
- Метод IWICDevelopRaw::SetRotation. Этот метод задает требуемый угол поворота для выходных данных последующих вызовов CopyPixels.
- Метод IWICBitmapSourceTransform::CopyPixels. Вызывающий объект может задать параметр dstTransform, чтобы указать нужный угол поворота.
Эти два подхода отличаются следующим образом:
- В экземплярах объекта декодера могут сохраняться только параметры IWICDevelopRaw .
- IWICBitmapSourceTransform::CopyPixels применяется только к конкретному вызову; нет никакой настойчивости.
- IWICDevelopRaw обеспечивает более точное управление поворотом. IWICBitmapSourceTransform::CopyPixels ограничен 90-градусным шагом.
Если в IWICDevelopRaw и IWICBitmapSourceTransform указан поворот, то эффект поворота является кумулятивным. Например, если IWICDevelopRaw задает поворот на 25 градусов, а IWICBitmapSourceTransform — поворот на 90 градусов, то должно произойти следующее:
- Вызовы IWICBitmapFrameDecode::CopyPixels должны применять поворот на 25 градусов (то есть только количество, указанное в IWICDevelopRaw).
- Вызовы IWICBitmapSourceTransform::CopyPixels с объемом dstTransform 90 приводят к повороту на 115 градусов (25 + 90).
- Опять же, можно сохранить только поворот на 25 градусов, заданный с помощью IWICDevelopRaw::SetRotation .
В Windows Vista методы IWICBitmapFrameDecode::GetThumbnail и IWICBitmapDecoder::GetPreview позволяют вызывающим элементам получать внедренные эскизы и предварительные просмотры изображений соответственно. Они предназначены для возврата предварительно вычисляемых предварительных просмотров и эскизов из потока файлов изображений. Создание предварительных просмотров или эскизов "на лету" приводит к снижению производительности в Windows Обозреватель и Средстве просмотра фотографий. Кодек также должен предоставлять способ быстрого возврата обновленного изображения с разрешением экрана, когда пользователи выполняют интерактивное управление параметрами обработки.
Вызовы IWICDevelopRaw::SetRenderMode определяют, какие последующие вызовы IWICBitmapFrameDecode::CopyPixels возвращают (в пользу скорости или качества). Кроме того, интерфейс IWICBitmapSourceTransform можно использовать для определения необходимости уменьшения дискретизации и повышения производительности при его применении. Цветовая точность всех изображений должна быть сравнимой. При внесении изменений в параметры обработки все эти отрисовки должны отражать изменения.
Связанные темы
-
Основные понятия
-
Рекомендации WIC для форматов необработанных изображений камеры