Эффект управления цветом
Используйте эффект управления цветами для преобразования изображения из одного профиля цвета (международный консорциум цветов) на другой. Эффект преобразует изображение в соответствии с спецификацией ICC.
CLSID для этого эффекта CLSID_D2D1ColorManagement.
- свойства эффекта
- режимы намерения отрисовки
- режимы альфа-изображения ввода
- соответствие спецификации ICC
- поведение альфа-канала
- режимы качества
- пример кода
- требования
- связанные разделы
Свойства эффекта
Отображаемое имя и перечисление индексов | Описание |
---|---|
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.
ID2D1DeviceContext5::CreateColorContextFromSimpleColorProfile и ID2D1DeviceContext5::CreateColorContextFromDromDgiColorSpace API не учитываются; Вместо этого содержимое HDR масштабируется, чтобы оно соответствовало диапазону 0-1 во время операции DeGamma G2084.
На практике содержимое, закодированное в этом гамма-пространстве, использует ссылку WhiteLevel 10 000 Nits, которая, как правило, будет представлена в 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 |
Связанные разделы
- интерфейс ID2D1Effect