Дискретный эффект передачи
Используйте дискретный эффект передачи для сопоставления интенсивности цвета изображения с помощью функции передачи шагов, созданной из списка предоставленных значений.
CLSID для этого эффекта CLSID_D2D1DiscreteTransfer.
Пример изображения
На изображении здесь показаны входные и выходные данные дискретного эффекта передачи.
До |
---|
После |
ComPtr<ID2D1Effect> discreteTransferEffect;
m_d2dContext->CreateEffect(CLSID_D2D1DiscreteTransfer, &discreteTransferEffect);
discreteTransferEffect->SetInput(0, bitmap);
float table[3] = {0.0f, 0.5f, 1.0f};
discreteTransferEffect->SetValue(D2D1_DISCRETETRANSFER_PROP_RED_TABLE, table);
discreteTransferEffect->SetValue(D2D1_DISCRETETRANSFER_PROP_GREEN_TABLE, table);
discreteTransferEffect->SetValue(D2D1_DISCRETETRANSFER_PROP_BLUE_TABLE, table);
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(discreteTransferEffect.Get());
m_d2dContext->EndDraw();
Функция передачи основана на списке входных данных: V=(V0,V1;V2;V3;V?,VN), где N — количество элементов — 1.
Интенсивность входных пикселей представлена как C. Интенсивность выходных пикселей C вычисляется с помощью формулы:
Для значения C выберите значение k, чтобы:
Выходные данные C можно вычислить с помощью формулы: C' = V?
Этот эффект работает с прямыми и предварительно подготовленными альфа-изображениями. Эффект выводит предварительно замедленные альфа-растровые изображения.
Вот как выглядит граф дискретной функции передачи, если входные данные имеют значение [0.25, 0.5, 0.75, 1.0]
.
Свойства эффекта
Примечание
Значения всех каналов дискретных свойств передачи являются неунитарными и имеют минимум 0,0 и максимум 1,0.
Отображаемое перечисление имен и индексов | Тип и значение по умолчанию | Описание |
---|---|---|
RedTable D2D1_DISCRETETRANSFER_PROP_RED_TABLE |
FLOAT[] {0.0f, 1.0f} |
Список значений, используемых для определения функции передачи для канала Red. |
RedDisable D2D1_DISCRETETRANSFER_PROP_RED_DISABLE |
BOOL Ложь. |
Если для этого параметра задано значение TRUE, функция передачи не применяется к красному каналу. Если для этого параметра задано значение FALSE, эффект применяет функцию RedDiscreteTransfer к каналу Red. |
Зеленаяtable D2D1_DISCRETETRANSFER_PROP_GREEN_TABLE |
FLOAT[] {0.0f, 1.0f} |
Список значений, определяющих функцию передачи для канала Green. |
GreenDisable D2D1_DISCRETETRANSFER_PROP_GREEN_DISABLE |
BOOL Ложь. |
Если для этого параметра задано значение TRUE, функция передачи не применяется к зеленому каналу. Если для этого параметра задано значение FALSE, функция GreenDiscreteTransfer применяется к каналу Green. |
BlueTable D2D1_DISCRETETRANSFER_PROP_BLUE_TABLE |
FLOAT[] {0.0f, 1.0f} |
Список значений, определяющих функцию передачи для синего канала. |
BlueDisable D2D1_DISCRETETRANSFER_PROP_BLUE_DISABLE |
BOOL Ложь. |
Если для этого параметра задано значение TRUE, функция передачи не применяется к синему каналу. Если для этого параметра задано значение FALSE, функция BlueDiscreteTransfer применяется к синему каналу. |
AlphaTable D2D1_DISCRETETRANSFER_PROP_ALPHA_TABLE |
FLOAT[] {0.0f, 1.0f} |
Список значений, определяющих функцию передачи для альфа-канала. |
AlphaDisable D2D1_DISCRETETRANSFER_PROP_ALPHA_DISABLE |
BOOL Ложь. |
Если для этого параметра задано значение TRUE, функция передачи не применяется к каналу Альфа. Если для этого параметра задано значение FALSE, функция AlphaDiscreteTransfer применяется к каналу Alpha. |
ClampOutput D2D1_DISCRETETRANSFER_PROP_CLAMP_OUTPUT |
BOOL Ложь. |
Указывает, зажимает ли эффект значения цвета в диапазоне от 0 до 1, прежде чем эффект передает значения следующему эффекту в графе. Эффект зажимает значения до предварительного развертывания альфа-канала. Если для этого параметра задано значение TRUE, эффект будет зажимать значения. Если задать для этого параметра значение FALSE, эффект не будет зажимать значения цвета, но другие эффекты и выходная поверхность может зажать значения, если они не имеют достаточно высокой точности. |
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 8 и обновление платформы для Windows 7 [классические приложения | Приложения Магазина Windows] |
Минимальная версия сервера | Windows 8 и обновление платформы для Windows 7 [классические приложения | Приложения Магазина Windows] |
Заголовок | d2d1effects.h |
Библиотека | d2d1.lib, dxguid.lib |