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


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

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

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. Корректирует изображение в соответствии с этими значениями:

    • входных — это значения интенсивности пикселей ввода от 0 до 1.

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

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

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

Окончательное уравнение выходных данных и части компонентов показаны здесь.

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

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

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

Требования

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

ID2D1Effect