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


Светимость к альфа-эффекту

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

Заметка

Этот эффект не имеет свойств.

 

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

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

В этом примере показаны выходные данные светимости альфа-эффекта, составного над белой поверхностью, чтобы показать непрозрачность.

Перед
изображение перед эффектом.
После
изображение после преобразования.

 

ComPtr<ID2D1Effect> luminanceToAlphaEffect;
m_d2dContext->CreateEffect(CLSID_D2D1LuminanceToAlpha, &luminanceToAlphaEffect);

luminanceToAlphaEffect->SetInput(0, bitmap);

// LuminanceToAlpha result is composited on top of a white surface to show opacity.
ComPtr<ID2D1Effect> floodEffect;
m_d2dContext->CreateEffect(CLSID_D2D1Flood, &floodEffect);
floodEffect->SetValue(D2D1_FLOOD_PROP_COLOR, D2D1::Vector4F(1.0f, 1.0f, 1.0f, 1.0f));

ComPtr<ID2D1Effect> compositeEffect;
m_d2dContext->CreateEffect(CLSID_D2D1Composite, &compositeEffect);

compositeEffect->SetInputEffect(0, floodEffect.Get());
compositeEffect->SetInputEffect(1, luminanceToAlphaEffect.Get());

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

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

цветовой матрице эффект используется для задания альфа-канала.

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

Заметка

Так как изображения хранятся в гамма-компенсированном формате, прежде чем вычислить светимость изображения, необходимо сначала выполнить обратную гамма-коррекцию, чтобы получить истинные значения цвета для изображения. Так как изображения обычно хранятся в гамма-2,2, можно использовать эффект передачи гамма с экспонентом (1/2.2), а затем использовать выходные данные этого эффекта.

 

Требования

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

 

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

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

ID2D1Effect