Эффект гамма-передачи
Используйте эффект гамма-передачи для сопоставления интенсивности цвета изображения с помощью гамма-функции, созданной с использованием амплитуды, экспоненты и смещения, которые вы предоставляете для каждого канала.
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 * CExponent + Offset
Этот эффект работает с прямыми и предварительно настроенными альфа-изображениями. Эффект выводит предварительно созданные растровые альфа-изображения.
Свойства эффекта
Примечание
Для всех каналов свойств гамма-передачи:
- Значение амплитуды не ограничивается и не является унитарным.
- Значение экспоненты не ограничивается и не является унитарным.
- Значение смещения не ограничивается и является неунитарным.
Отображаемое перечисление имен и индексов | Описание |
---|---|
RedAmplitude D2D1_GAMMATRANSFER_PROP_RED_AMPLITUDE |
Амплитуда гамма-функции передачи для красного канала. Тип — FLOAT. Значение по умолчанию — 1,0f. |
Red Exponent D2D1_GAMMATRANSFER_PROP_RED_EXPONENT |
Экспонента гамма-функции передачи для красного канала. Тип — FLOAT. Значение по умолчанию — 1,0f. |
RedOffset D2D1_GAMMATRANSFER_PROP_RED_OFFSET |
Смещение функции гамма-передачи для красного канала. Тип — FLOAT. Значение по умолчанию — 0,0f. |
RedDisable D2D1_GAMMATRANSFER_PROP_RED_DISABLE |
Если для этого параметра задано значение TRUE, функция передачи не применяется к красному каналу. Используется функция передачи удостоверений. Если для этого параметра задано значение FALSE, функция гамма-передачи применяется к красному каналу. Тип — 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, функция гамма-передачи применяется к каналу Green. Тип — 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 |
Смещение функции гамма-передачи для синего канала. Тип — FLOAT. Значение по умолчанию — 0,0f. |
BlueDisable D2D1_GAMMATRANSFER_PROP_BLUE_DISABLE |
Если для этого параметра задано значение TRUE, функция передачи не применяется к синему каналу. Используется функция передачи удостоверений. Если для этого параметра задано значение FALSE, функция гамма-передачи применяется к синему каналу. Тип — BOOL. Значение по умолчанию — FALSE. |
AlphaAmplitude D2D1_GAMMATRANSFER_PROP_ALPHA_AMPLITUDE |
Амплитуда функции гамма-передачи для альфа-канала. Тип — FLOAT. Значение по умолчанию — 1,0f. |
АльфаЭкспонент D2D1_GAMMATRANSFER_PROP_ALPHA_EXPONENT |
Экспонента функции гамма-передачи для альфа-канала. Тип — FLOAT. Значение по умолчанию — 1,0f. |
AlphaOffset 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 |