Эффекты управления цветом
Используйте эффект управления цветом для преобразования изображения из одного цветового профиля ICC (International Color Consortium) в другой. Эффект преобразует изображение в соответствии со спецификацией ICC.
CLSID для этого эффекта CLSID_D2D1ColorManagement.
- Свойства эффекта
- Режимы намерений отрисовки
- Альфа-режимы входного изображения
- Соответствие спецификации ICC
- Поведение альфа-канала
- Режимы качества
- Образец кода
- Requirements
- Связанные темы
Свойства эффекта
Отображаемое перечисление имен и индексов | Описание |
---|---|
SourceContext D2D1_COLORMANAGEMENT_PROP_SOURCE_COLOR_CONTEXT |
Сведения об исходном цветовом пространстве. Тип ID2D1ColorContext. Значение по умолчанию — NULL. |
SourceIntent D2D1_COLORMANAGEMENT_PROP_SOURCE_RENDERING_INTENT |
Какое намерение отрисовки ICC использовать. Тип D2D1_COLORMANAGEMENT_RENDERING_INTENT. Значение по умолчанию — D2D1_COLORMANAGEMENT_RENDERING_INTENT_PERCEPTUAL. |
DestinationContext D2D1_COLORMANAGEMENT_PROP_DESTINATION_COLOR_CONTEXT |
Сведения о целевом цветовом пространстве. Тип ID2D1ColorContext. Значение по умолчанию — NULL. |
DestinationIntent D2D1_COLORMANAGEMENT_PROP_DESTINATION_RENDERING_INTENT |
Какое намерение отрисовки ICC использовать. Тип D2D1_COLORMANAGEMENT_RENDERING_INTENT. Значение по умолчанию — D2D1_COLORMANAGEMENT_RENDERING_INTENT_PERCEPTUAL. |
AlphaMode D2D1_COLORMANAGEMENT_PROP_ALPHA_MODE |
Как интерпретировать альфа-данные, содержащиеся во входном изображении. Тип D2D1_COLORMANAGEMENT_ALPHA_MODE. Значение по умолчанию — D2D1_COLORMANAGEMENT_ALPHA_MODE_PREMULTIPLIED. |
Качество D2D1_COLORMANAGEMENT_PROP_QUALITY |
Уровень качества преобразования. Тип — D2D1_COLORMANAGEMENT_QUALITY. Значение по умолчанию — D2D1_COLORMANAGEMENT_QUALITY_NORMAL. |
Режимы намерений отрисовки
Перечисление | Описание |
---|---|
D2D1_COLORMANAGEMENT_RENDERING_INTENT_PERCEPTUAL | Эффект сжимает или расширяет полную цветовую гамму изображения, чтобы заполнить цветовую гамму устройства, чтобы создать приятные выходные данные, сохраняющие детали цвета, но при этом может пожертвовать точностью колориметрии. Это полезно для общего воспроизведения реального содержимого, такого как фотографии. |
D2D1_COLORMANAGEMENT_RENDERING_INTENT_RELATIVE_COLORIMETRIC | Этот эффект корректирует любые цвета, которые выходят за пределы гаммы, которую выходное устройство может отрисовывать до ближайшего цвета, который может быть отрисован. Он не сохраняет белую точку. |
D2D1_COLORMANAGEMENT_RENDERING_INTENT_SATURATION | Эффект сохраняет насыщенность чистых цветов в изображении за счет возможного оттенок и легкости. Он полезен для таких графических элементов, как диаграммы и схемы. |
D2D1_COLORMANAGEMENT_RENDERING_INTENT_ABSOLUTE_COLORIMETRIC | Этот эффект корректирует любые цвета, которые выходят за пределы гаммы, которую выходное устройство может отрисовывать до ближайшего цвета, который может быть отрисован. Эффект не изменяет цвета в гамме и сохраняет белую точку. |
Альфа-режимы входного изображения
Перечисление | Описание |
---|---|
D2D1_COLORMANAGEMENT_ALPHA_MODE_PREMULTIPLIED | Эффект предполагает, что альфа-режим предварительно замедлен. |
D2D1_COLORMANAGEMENT_ALPHA_MODE_STRAIGHT | Эффект предполагает, что альфа-режим является прямым. |
изменения в поведении D2D1_GAMMA1_G2084
Если приложение использует D2D1_GAMMA1_G2084 пробел или одно из значений перечисления DXGI_COLOR_SPACE_TYPE, использующих цветовое пространство SMPTE ST.2084 (Perceptual Quantizer), приложение планирует работать с данными HDR.
API ID2D1DeviceContext5::CreateColorContextFromSimpleColorProfile и ID2D1DeviceContext5::CreateColorContextFromDxgiColorSpace не учитывают это; вместо этого содержимое HDR масштабируется в соответствии с диапазоном 0–1 во время операции G2084 DeGamma.
На практике содержимое, закодированное в этом гамма-пространстве, использует ссылочный WhiteLevel 10 000 Нит, который обычно будет представлен в CCCS как 10 000 / 80 = 125,0. Таким образом, чтобы упростить работу приложения, проще всего масштабировать яркость гамма-преобразования в 125 раз. По состоянию на Windows 10, версия 1809 (10,0; Сборка 17763), поведение эффекта управления цветом таково, что применяется такое масштабирование. Это означает, что вам, как разработчику, не нужно применять второй эффект корректировки уровня белого цвета в конвейере.
Соответствие спецификации ICC
Эффект управления цветом соответствует спецификации ICC версии 4.3 со следующими ограничениями:
- Эффект поддерживает цветовые пространства 1, 3 и 4 канала.
- Эффект не поддерживает профили ColorSpace или Именованный цвет.
Поведение альфа-канала
Как правило, эффект задает альфа-значение 1 (непрозрачный), если в исходном изображении нет альфа-данных и альфа-данные удаляются, если в целевом изображении нет места. В приведенной здесь таблице описано поведение альфа.
Исходное цветовое пространство, формат пикселей | Целевое цветовое пространство, формат пикселей | Поведение альфа-канала |
---|---|---|
1 канал, формат пикселей R |
1 канал, формат пикселей R | (Без альфа-данных) |
1 канал, формат пикселей RGBA | Для альфа-данных задано значение 1 (непрозрачные) | |
3 канала, формат пикселей RGBA | Для альфа-данных задано значение 1 (непрозрачные) | |
4 канала, формат пикселей RGBA | (Без альфа-данных) | |
1 канал, формат пикселей RGBA |
1 канал, формат пикселей R | Альфа-данные удалены |
1 канал, формат пикселей RGBA | Альфа-данные передаются через | |
3 канала, формат пикселей RGBA | Альфа-данные передаются через | |
4 канала, формат пикселей RGBA | Альфа-данные удалены | |
3 канала, формат пикселей RGBA |
1 канал, формат пикселей R | Альфа-данные удалены |
1 канал, формат пикселей RGBA | Альфа-данные передаются через | |
3 канала, формат пикселей RGBA | Альфа-данные передаются через | |
4 канала, формат пикселей RGBA | Альфа-данные удалены | |
4 канала, формат пикселей RGBA |
1 канал, формат пикселей R | (Без альфа-данных) |
1 канал, формат пикселей RGBA | Альфа-данные равны 1 (непрозрачные) | |
3 канала, формат пикселей RGBA | Альфа-данные равны 1 (непрозрачные) | |
4 канала, формат пикселей RGBA | (Без альфа-данных) |
Режимы качества
Режим | Описание |
---|---|
D2D1_COLORMANAGEMENT_QUALITY_PROOF | Режим наименьшего качества. Для этого режима требуется уровень компонентов 9_1 или выше. |
D2D1_COLORMANAGEMENT_QUALITY_NORMAL | Режим нормального качества. Для этого режима требуется уровень компонентов 9_1 или выше. |
D2D1_COLORMANAGEMENT_QUALITY_BEST | Режим наилучшего качества. Для этого режима требуется уровень компонентов 10_0 или выше, а также буферы точности с плавающей запятой. Этот режим поддерживает точность с плавающей запятой, а также расширенный диапазон, как определено в спецификации ICC версии 4.3. |
Эффект управления цветом завершается сбоем при рисовании, если приложение запрашивает режим качества, который не поддерживается оборудованием. Уровень компонентов можно определить при вызове D3D11CreateDevice. Для поддержки буфера с плавающей запятой можно проверка, вызвав ID2D1EffectContext::IsBufferPrecisionSupported со значением D2D1_BUFFER_PRECISION_32BPC_FLOAT.
Образец кода
Для примера этого эффекта скачайте пример корректировки фотографий эффектов Direct2D и ознакомьтесь с уроком 4 примера.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 8 и обновление платформы для Windows 7 [классические приложения | Приложения Магазина Windows] |
Минимальная версия сервера | Windows 8 и обновление платформы для Windows 7 [классические приложения | Приложения Магазина Windows] |
Заголовок | d2d1effects.h |
Библиотека | d2d1.lib, dxguid.lib |