Эффект линейной передачи
Используйте эффект линейной передачи, чтобы сопоставить интенсивность цвета изображения с помощью линейной функции, созданной из списка значений, предоставляемых для каждого канала.
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();
Функция линейной передачи создается на основе наклона и перехвата для каждого указанного канала. Интенсивность выходных пикселей C вычисляется с помощью уравнения: C' = mC + B, где m является наклоном линейной функции и B является перехватом линейной функции Y.
Этот эффект работает на прямых и предварительно премультированных альфа-изображениях. Эффект выводит предварительно заданные альфа-растровые изображения.
Свойства эффекта
Заметка
Для всех каналов линейных свойств передачи:
- Перехват Y не ограничен и не является модульным.
- Склон не ограничен и не является единичного.
Отображаемое имя и перечисление индексов | Тип и значение по умолчанию | Описание |
---|---|---|
RedYIntercept D2D1_LINEARTRANSFER_PROP_RED_Y_INTERCEPT |
ПЛАВАТЬ 0.0f |
Y-перехват линейной функции для канала Red. |
RedSlope D2D1_LINEARTRANSFER_PROP_RED_SLOPE |
ПЛАВАТЬ 1.0f |
Наклон линейной функции для канала Red. |
RedDisable D2D1_LINEARTRANSFER_PROP_RED_DISABLE |
BOOL ЛОЖНЫЙ |
Если задать значение TRUE, эффект не применяет функцию передачи к каналу Red. Если задать значение FALSE, эффект применяет функцию RedLinearTransfer к каналу Red. |
GreenYIntercept D2D1_LINEARTRANSFER_PROP_GREEN_Y_INTERCEPT |
ПЛАВАТЬ 0.0f |
Y-перехват линейной функции для зеленого канала. |
GreenSlope D2D1_LINEARTRANSFER_PROP_GREEN_SLOPE |
ПЛАВАТЬ 1.0f |
Наклон линейной функции для зеленого канала. |
GreenDisable D2D1_LINEARTRANSFER_PROP_GREEN_DISABLE |
BOOL ЛОЖНЫЙ |
Если задать значение TRUE, эффект не применяет функцию передачи к зеленому каналу. Если задать значение FALSE, оно применяет функцию GreenLinearTransfer к каналу Green. |
BlueYIntercept D2D1_LINEARTRANSFER_PROP_BLUE_Y_INTERCEPT |
ПЛАВАТЬ 0.0f |
Y-перехват линейной функции для синего канала. |
BlueSlope D2D1_LINEARTRANSFER_PROP_BLUE_SLOPE |
ПЛАВАТЬ 1.0f |
Наклон линейной функции для синего канала. |
BlueDisable D2D1_LINEARTRANSFER_PROP_BLUE_DISABLE |
BOOL ЛОЖНЫЙ |
Если задать значение TRUE, эффект не применяет функцию передачи к каналу Blue. Если задать значение FALSE, оно применяет функцию BlueLinearTransfer к каналу Blue Channel. |
AlphaYIntercept D2D1_LINEARTRANSFER_PROP_ALPHA_Y_INTERCEPT |
ПЛАВАТЬ 0.0f |
Y-перехват линейной функции для альфа-канала. |
AlphaSlope D2D1_LINEARTRANSFER_PROP_ALPHA_SLOPE |
ПЛАВАТЬ 0.0f |
Наклон линейной функции для альфа-канала. |
AlphaDisable D2D1_LINEARTRANSFER_PROP_ALPHA_DISABLE |
BOOL ЛОЖНЫЙ |
Если задано значение TRUE, эффект не применяет функцию передачи к каналу Alpha. Если задать значение FALSE, оно применяет функцию AlphaLinearTransfer к каналу Альфа. |
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 |