Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Используйте дискретный эффект передачи для сопоставления интенсивности цвета изображения с помощью функции передачи шагов, созданной из списка указанных значений.
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 выберите значение 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, эффект не применяет функцию передачи к каналу Red. Если задать значение FALSE, эффект применяет функцию RedDiscreteTransfer к каналу Red. |
| Зеленаяtable D2D1_DISCRETETRANSFER_PROP_GREEN_TABLE |
FLOAT[] {0.0f, 1.0f} |
Список значений, определяющих функцию передачи для зеленого канала. |
| GreenDisable D2D1_DISCRETETRANSFER_PROP_GREEN_DISABLE |
BOOL ЛОЖНЫЙ |
Если задать значение TRUE, эффект не применяет функцию передачи к зеленому каналу. Если задать значение FALSE, эффект применяет функцию GreenDiscreteTransfer к каналу Green. |
| BlueTable D2D1_DISCRETETRANSFER_PROP_BLUE_TABLE |
FLOAT[] {0.0f, 1.0f} |
Список значений, определяющих функцию передачи для канала Blue. |
| BlueDisable D2D1_DISCRETETRANSFER_PROP_BLUE_DISABLE |
BOOL ЛОЖНЫЙ |
Если задать значение TRUE, эффект не применяет функцию передачи к каналу Blue. Если для этого задано значение FALSE, эффект применяет функцию BlueDiscreteTransfer к каналу Blue. |
| АльфаTable D2D1_DISCRETETRANSFER_PROP_ALPHA_TABLE |
FLOAT[] {0.0f, 1.0f} |
Список значений, определяющих функцию передачи для альфа-канала. |
| AlphaDisable D2D1_DISCRETETRANSFER_PROP_ALPHA_DISABLE |
BOOL ЛОЖНЫЙ |
Если задано значение TRUE, эффект не применяет функцию передачи к каналу Alpha. Если задать значение 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 |