Поделиться через


Эффект передачи таблицы

Используйте эффект передачи таблицы для сопоставления интенсивности цвета изображения с помощью функции передачи, созданной на основе интерполяции списка предоставленных значений.

CLSID для этого эффекта CLSID_D2D1TableTransfer.

Пример изображения

На изображении здесь показаны входные и выходные данные эффекта передачи таблицы.

До
изображение перед эффектом.
После
изображение после преобразования.
ComPtr<ID2D1Effect> tableTransferEffect;
m_d2dContext->CreateEffect(CLSID_D2D1TableTransfer, &tableTransferEffect);

tableTransferEffect->SetInput(0, bitmap);

float table[2] = {0.75f, 1.0f};
tableTransferEffect->SetValue(D2D1_TABLETRANSFER_PROP_BLUE_TABLE, table);

m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(tableTransferEffect.Get());
m_d2dContext->EndDraw();

Функция передачи основана на списке входов V=(V0,V1;V2;V3; V? ,VN), где N — количество элементов — 1.

Интенсивность входных пикселей представлена как C. Интенсивность выходных пикселей C можно вычислить с помощью уравнения.

Для значения C выберите значение k, таким образом: k/N = C < (k+1)/N

Выходные данные C вычисляются с помощью следующего уравнения: C' = V? + (C - k/N) * N * (V??? 1? - V?)

Этот эффект работает с прямыми и предварительно подготовленными альфа-изображениями. Эффект выводит предварительно замедленные альфа-растровые изображения.

Вот как выглядит граф функции передачи таблиц, если свойству таблицы присвоено значение [0.0, 0.25, 1.0].

график интенсивности пикселей для функции передачи таблицы.

Свойства эффекта

Примечание

Значения всех каналов свойств передачи таблицы являются неунитарными и имеют не менее 0,0 и максимум 1,0.

Отображаемое перечисление имен и индексов Тип и значение по умолчанию Описание
RedTable
D2D1_TABLETRANSFER_PROP_RED_TABLE
FLOAT[]
{0.0f, 1.0f}
Список значений, используемых для определения функции передачи для канала Red.
RedDisable
D2D1_TABLETRANSFER_PROP_RED_DISABLE
BOOL
Ложь.
Если для этого параметра задано значение TRUE, функция передачи не применяется к красному каналу. Если для этого параметра задано значение FALSE, функция RedTableTransfer применяется к каналу Red.
Зеленаяtable
D2D1_TABLETRANSFER_PROP_GREEN_TABLE
FLOAT[]
{0.0f, 1.0f}
Список значений, используемых для определения функции передачи для канала Green.
GreenDisable
D2D1_TABLETRANSFER_PROP_GREEN_DISABLE
BOOL
Ложь.
Если для этого параметра задано значение TRUE, функция передачи не применяется к зеленому каналу. Если для этого параметра задано значение FALSE, функция GreenTableTransfer применяется к каналу Green.
BlueTable
D2D1_TABLETRANSFER_PROP_BLUE_TABLE
FLOAT[]
{0.0f, 1.0f}
Список значений, используемых для определения функции передачи для синего канала.
BlueDisable
D2D1_TABLETRANSFER_PROP_BLUE_DISABLE
BOOL
Ложь.
Если для этого параметра задано значение TRUE, функция передачи не применяется к синему каналу. Если для этого параметра задано значение FALSE, функция BlueTableTransfer применяется к синему каналу.
AlphaTable
D2D1_TABLE_TRANSFER_PROP_ALPHA_TABLE
FLOAT[]
{0.0f, 1.0f}
Список значений, используемых для определения функции передачи для канала Альфа.
AlphaDisable
D2D1_TABLETRANSFER_PROP_ALPHA_DISABLE
BOOL
Ложь.
Если для этого параметра задано значение TRUE, функция передачи не применяется к каналу Альфа. Если для этого параметра задано значение FALSE, функция AlphaTableTransfer применяется к каналу Alpha.
ClampOutput
D2D1_TABLETRANSFER_PROP_CLAMP_OUTPUT
BOOL
Ложь.
Указывает, зажимает ли эффект значения цвета в диапазоне от 0 до 1, прежде чем эффект передает значения следующему эффекту в графе. Эффект зажимает значения до того, как он предумультирует альфа- .
Если для этого параметра задано значение TRUE, эффект будет зажимать значения. Если задать для этого параметра значение FALSE, эффект не будет зажимать значения цвета, но другие эффекты и выходная поверхность может зажать значения, если они не имеют достаточно высокой точности.

Требования

Требование Значение
Минимальная версия клиента Windows 8 и обновление платформы для Windows 7 [классические приложения | Приложения Магазина Windows]
Минимальная версия сервера Windows 8 и обновление платформы для Windows 7 [классические приложения | Приложения Магазина Windows]
Заголовок d2d1effects.h
Библиотека d2d1.lib, dxguid.lib

ID2D1Effect