Эффект гамма-передачи
Используйте эффект гамма-передачи для сопоставления цветовой интенсивности изображения с помощью гамма-функции, созданной с помощью амплитуды, экспоненты и смещения, предоставляемого для каждого канала.
CLSID для этого эффекта CLSID_D2D1GammaTransfer. Чтобы использовать этот эффект, добавьте dxguid.lib в зависимости компоновщика.
- пример изображения
- свойства эффекта
- растровое изображение вывода
- требования
- связанные разделы
Пример изображения
Перед |
---|
![]() |
После |
![]() |
ComPtr<ID2D1Effect> gammaTransferEffect;
m_d2dContext->CreateEffect(CLSID_D2D1GammaTransfer, &gammaTransferEffect);
gammaTransferEffect->SetInput(0, bitmap);
gammaTransferEffect->SetValue(D2D1_GAMMATRANSFER_PROP_RED_EXPONENT, 0.25f);
gammaTransferEffect->SetValue(D2D1_GAMMATRANSFER_PROP_GREEN_EXPONENT, 0.25f);
gammaTransferEffect->SetValue(D2D1_GAMMATRANSFER_PROP_BLUE_EXPONENT, 0.25f);
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(gammaTransferEffect.Get());
m_d2dContext->EndDraw();
Этот эффект применяет функцию гамма-передачи на основе уравнения здесь.
Интенсивность входных пикселей представлена как C и интенсивность выходных пикселей как C. C' = Amplitude * CЭкспонент + смещение
Этот эффект работает на прямых и предварительно премультированных альфа-изображениях. Эффект выводит предварительно заданные альфа-растровые изображения.
Свойства эффекта
Заметка
Для всех каналов гамма-передачи свойств:
- Амплитудное значение не привязано и не является модульным.
- Экспонентное значение не привязано и не является модульным.
- Значение смещения не привязано и не является модульным.
Отображаемое имя и перечисление индексов | Описание |
---|---|
RedAmplitude D2D1_GAMMATRANSFER_PROP_RED_AMPLITUDE |
Амплитуды гамма-передачи для канала Red. Тип FLOAT. Значение по умолчанию — 1.0f. |
Red Exponent D2D1_GAMMATRANSFER_PROP_RED_EXPONENT |
Экспонент функции гамма-передачи для канала Red. Тип FLOAT. Значение по умолчанию — 1.0f. |
RedOffset D2D1_GAMMATRANSFER_PROP_RED_OFFSET |
Смещение функции гамма-передачи для канала Red. Тип FLOAT. Значение по умолчанию — 0.0f. |
RedDisable D2D1_GAMMATRANSFER_PROP_RED_DISABLE |
Если задано значение TRUE, функция передачи не применяется к каналу Red. Используется функция передачи удостоверений. Если задать значение FALSE, он применяет функцию гамма-передачи к каналу Red. Тип — BOOL. Значение по умолчанию — FALSE. |
GreenAmplitude D2D1_GAMMATRANSFER_PROP_GREEN_AMPLITUDE |
Амплитуды гамма-передачи для зеленого канала. Тип FLOAT. Значение по умолчанию — 1.0f. |
Green Exponent D2D1_GAMMATRANSFER_PROP_GREEN_EXPONENT |
Экспонент функции гамма-передачи для зеленого канала. Тип FLOAT. Значение по умолчанию — 1.0f. |
GreenOffset D2D1_GAMMATRANSFER_PROP_GREEN_OFFSET |
Смещение функции гамма-передачи для зеленого канала. Тип FLOAT. Значение по умолчанию — 0.0f. |
GreenDisable D2D1_GAMMATRANSFER_PROP_GREEN_DISABLE |
Если задано значение TRUE, функция передачи не применяется к зеленому каналу. Используется функция передачи удостоверений. Если задать значение FALSE, оно применяет функцию гамма-передачи к зеленому каналу. Тип — BOOL. Значение по умолчанию — FALSE. |
BlueAmplitude D2D1_GAMMATRANSFER_PROP_BLUE_AMPLITUDE |
Амплитуда гамма-передачи для синего канала. Тип FLOAT. Значение по умолчанию — 1.0f. |
Blue Exponent D2D1_GAMMATRANSFER_PROP_BLUE_EXPONENT |
Экспонент гамма-передачи для синего канала. Тип FLOAT. Значение по умолчанию — 1.0f. |
BlueOffset D2D1_GAMMATRANSFER_PROP_BLUE_OFFSET |
Смещение функции гамма-передачи для канала Blue. Тип FLOAT. Значение по умолчанию — 0.0f. |
BlueDisable D2D1_GAMMATRANSFER_PROP_BLUE_DISABLE |
Если задано значение TRUE, функция передачи не применяется к каналу Blue. Используется функция передачи удостоверений. Если задать значение FALSE, он применяет функцию гамма-передачи к каналу Blue. Тип — BOOL. Значение по умолчанию — FALSE. |
AlphaAmplitude D2D1_GAMMATRANSFER_PROP_ALPHA_AMPLITUDE |
Амплитуда гамма-передачи для альфа-канала. Тип FLOAT. Значение по умолчанию — 1.0f. |
Alpha Exponent D2D1_GAMMATRANSFER_PROP_ALPHA_EXPONENT |
Экспонент функции гамма-передачи для альфа-канала. Тип FLOAT. Значение по умолчанию — 1.0f. |
АльфаOffset D2D1_GAMMATRANSFER_PROP_ALPHA_OFFSET |
Смещение функции гамма-передачи для альфа-канала. Тип FLOAT. Значение по умолчанию — 0.0f. |
AlphaDisable D2D1_GAMMATRANSFER_PROP_ALPHA_DISABLE |
Если задано значение TRUE, функция передачи не применяется к альфа-каналу. Используется функция передачи удостоверений. Если задать значение FALSE, он применяет функцию гамма-передачи к альфа-каналу. Тип — BOOL. Значение по умолчанию — FALSE. |
ClampOutput D2D1_GAMMATRANSFER_PROP_CLAMP_OUTPUT |
Если эффект зажимает значения цвета в диапазоне от 0 до 1, прежде чем эффект передает значения следующему эффекту в графе. Эффект зажимает значения перед тем, как он премультирует альфа- . Если задано значение TRUE, эффект зацепнет значения. Если задано значение FALSE, эффект не зацепляет значения цвета, но другие эффекты и выходная поверхность могут зажать значения, если они не имеют достаточной точности. Тип — BOOL. Значение по умолчанию — FALSE. |
Выходной растровый рисунок
Размер выходного растрового изображения совпадает с размером входного растрового изображения.
Требования
Требование | Ценность |
---|---|
Минимальный поддерживаемый клиент | Windows 8 и Обновление платформы для Windows 7 [классические приложения | Приложения Магазина Windows] |
Минимальный поддерживаемый сервер | Windows 8 и Обновление платформы для Windows 7 [классические приложения | Приложения Магазина Windows] |
Заголовок | d2d1effects.h |
Библиотека | d2d1.lib, dxguid.lib |