Эффект линейной передачи
Используйте эффект линейной передачи для сопоставления интенсивности цвета изображения с помощью линейной функции, созданной из списка значений, которые вы предоставляете для каждого канала.
CLSID для этого эффекта CLSID_D2D1LinearTransfer.
Пример изображения
До |
---|
После |
ComPtr<ID2D1Effect> linearTransferEffect;
m_d2dContext->CreateEffect(CLSID_D2D1LinearTransfer, &linearTransferEffect);
linearTransferEffect->SetInput(0, bitmap);
linearTransferEffect->SetValue(D2D1_LINEARTRANSFER_PROP_RED_Y_INTERCEPT, -1.0f);
linearTransferEffect->SetValue(D2D1_LINEARTRANSFER_PROP_RED_SLOPE, 2.5f);
linearTransferEffect->SetValue(D2D1_LINEARTRANSFER_PROP_GREEN_Y_INTERCEPT, -1.0f);
linearTransferEffect->SetValue(D2D1_LINEARTRANSFER_PROP_GREEN_SLOPE, 5.0f);
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(linearTransferEffect.Get());
m_d2dContext->EndDraw();
Функция линейной передачи создается на основе наклона и y-перехвата для каждого указанного канала. Интенсивность выходных пикселей C вычисляется с помощью формулы: C' = mC + B, где m — наклон линейной функции, а B — Y-перехват линейной функции.
Этот эффект работает с прямыми и предварительно подготовленными альфа-изображениями. Эффект выводит предварительно замедленные альфа-растровые изображения.
Свойства эффекта
Примечание
Для всех каналов свойств линейной передачи:
- Y-перехват не ограничен и не единичен.
- Наклон не ограничен и не является единичного.
Отображаемое перечисление имен и индексов | Тип и значение по умолчанию | Описание |
---|---|---|
RedYIntercept D2D1_LINEARTRANSFER_PROP_RED_Y_INTERCEPT |
FLOAT 0,0f |
Y-перехват линейной функции для канала Red. |
RedSlope D2D1_LINEARTRANSFER_PROP_RED_SLOPE |
FLOAT 1.0f |
Наклон линейной функции для канала Red. |
RedDisable D2D1_LINEARTRANSFER_PROP_RED_DISABLE |
BOOL Ложь. |
Если для этого параметра задано значение TRUE, функция передачи не применяется к красному каналу. Если для этого параметра задано значение FALSE, эффект применяет функцию RedLinearTransfer к красному каналу. |
GreenYIntercept D2D1_LINEARTRANSFER_PROP_GREEN_Y_INTERCEPT |
FLOAT 0,0f |
Y-перехват линейной функции для канала Green. |
GreenSlope D2D1_LINEARTRANSFER_PROP_GREEN_SLOPE |
FLOAT 1.0f |
Наклон линейной функции для зеленого канала. |
GreenDisable D2D1_LINEARTRANSFER_PROP_GREEN_DISABLE |
BOOL Ложь. |
Если для этого параметра задано значение TRUE, функция передачи не применяется к зеленому каналу. Если для этого параметра задано значение FALSE, функция GreenLinearTransfer применяется к каналу Green. |
BlueYIntercept D2D1_LINEARTRANSFER_PROP_BLUE_Y_INTERCEPT |
FLOAT 0,0f |
Y-перехват линейной функции для синего канала. |
BlueSlope D2D1_LINEARTRANSFER_PROP_BLUE_SLOPE |
FLOAT 1.0f |
Наклон линейной функции для синего канала. |
BlueDisable D2D1_LINEARTRANSFER_PROP_BLUE_DISABLE |
BOOL Ложь. |
Если для этого параметра задано значение TRUE, функция передачи не применяется к синему каналу. Если для этого параметра задано значение FALSE, функция BlueLinearTransfer применяется к синему каналу. |
AlphaYIntercept D2D1_LINEARTRANSFER_PROP_ALPHA_Y_INTERCEPT |
FLOAT 0,0f |
Y-перехват линейной функции для альфа-канала. |
AlphaSlope D2D1_LINEARTRANSFER_PROP_ALPHA_SLOPE |
FLOAT 0,0f |
Наклон линейной функции для альфа-канала. |
AlphaDisable D2D1_LINEARTRANSFER_PROP_ALPHA_DISABLE |
BOOL Ложь. |
Если для этого параметра задано значение TRUE, функция передачи не применяется к каналу Альфа. Если для этого параметра задано значение FALSE, функция AlphaLinearTransfer применяется к каналу Alpha. |
ClampOutput D2D1_LINEARTRANSFER_PROP_CLAMP_OUTPUT |
BOOL Ложь. |
Указывает, зажимает ли эффект значения цвета в диапазоне от 0 до 1, прежде чем эффект передает значения следующему эффекту в графе. Эффект зажимает значения до того, как он предумультирует альфа- . Если для этого параметра задано значение TRUE, эффект будет зажимать значения. Если задать для этого параметра значение FALSE, эффект не будет зажимать значения цвета, но другие эффекты и выходная поверхность может зажать значения, если они не имеют достаточно высокой точности. |
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 8 и обновление платформы для Windows 7 [классические приложения | Приложения Магазина Windows] |
Минимальная версия сервера | Windows 8 и обновление платформы для Windows 7 [классические приложения | Приложения Магазина Windows] |
Заголовок | d2d1effects.h |
Библиотека | d2d1.lib, dxguid.lib |