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


Эффект яркости

Используйте эффект яркости для управления яркостью изображения.

ClSID для этого эффекта CLSID_D2D1Brightness.

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

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

brightnessEffect->SetValue(D2D1_BRIGHTNESS_PROP_BLACK_POINT, D2D1::Vector2F(0.0f, 0.2f));

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

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

Отображаемое имя свойства Тип и значение по умолчанию Описание
WhitePoint
D2D1_BRIGHTNESS_PROP_WHITE_POINT
D2D1_VECTOR_2F
{1.0f, 1.0f}
Верхняя часть кривой передачи яркости. Белая точка изменяет внешний вид более ярких частей изображения. Это свойство относится как к значению x, так и к значению y в указанном порядке. Каждое из значений этого свойства находится в диапазоне от 0 до 1 включительно.
BlackPoint
D2D1_BRIGHTNESS_PROP_BLACK_POINT
D2D1_VECTOR_2F
{0.0f, 0.0f}
Нижняя часть кривой передачи яркости. Черная точка изменяет внешний вид более темных частей изображения. Это свойство относится как к значению x, так и к значению y в указанном порядке. Каждое из значений этого свойства находится в диапазоне от 0 до 1 включительно.

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

алгоритм яркости

Алгоритм эффекта реализует уравнение, создающее функцию передачи. Эта функция используется для настройки пикселей изображения. Значения x и y черной точки и белой точки являются координатами в двух измерениях, которые связаны для формирования преобразования. Каждая часть итогового выходного уравнения:

  1. Преобразует данные изображения из линейного пространства в нелинейное с помощью формулы:вспомогательной функции 1

  2. Настраивает изображение в соответствии со следующими значениями:

    • input — это значения интенсивности пикселей входного изображения от 0 до 1.

    • *Белый Pt. (x, y)*расположение кривой преобразования для более яркой интенсивности пикселей.

    • Черный Пт. (x, y) — это расположение кривой преобразования для более темной интенсивности пикселей.

  3. Преобразует данные изображения обратно в линейное пространство с помощью следующего уравнения: вспомогательная функция 2

Здесь показаны итоговое выходное уравнение и составные части.

полные вычисления для настройки яркости

Выходной растровый рисунок

Размер выходного растрового изображения совпадает с размером входного растрового рисунка.

Требования

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

ID2D1Effect