Luminance to Alpha-Effekt

Verwenden Sie die Luminance to Alpha-Effekt, um den Alphakanal auf die Leuchtdichte des Bilds festzulegen, und legen Sie die Farbkanäle auf 0 fest. Sie können die Ausgabe dieses Effekts verwenden, um eine halbtransparente Überlagerung basierend auf der Helligkeit des Eingabebilds zu erstellen. Sie können es auch verwenden, um eine Bildmaske zu erstellen.

Hinweis

Dieser Effekt hat keine Eigenschaften.

 

Die CLSID für diesen Effekt ist CLSID_D2D1LuminanceToAlpha.

Beispielbild

In diesem Beispiel wird die Ausgabe der Leuchtdichte zum Alphaeffekt über eine weiße Oberfläche zusammengesetzt, um Deckkraft anzuzeigen.

Vorher
das Bild vor dem Effekt.
Nach
das Bild nach der Transformation.

 

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();

Dieser Effekt legt den Alphakanal der Ausgabe mithilfe dieser Farbmatrix auf die Helligkeit des Eingabebilds fest.

die Farbmatrix, die der Effekt verwendet, um den Alphakanal festzulegen.

Dieser Effekt nutzt und gibt vormultiplizierte Alphabilder aus. Der Effekt funktioniert nicht auf geraden Alphabildern, es sei denn, sie sind vollständig undurchsichtig.

Hinweis

Da Bilder in einem gammakompensierten Format gespeichert werden, sollten Sie vor der Berechnung der Leuchtdichte für ein Bild zuerst eine inverse Gammakorrektur durchführen, um die wahren Farbwerte für das Bild zu erhalten. Da Bilder normalerweise bei 2,2 Gamma gespeichert werden, können Sie den Gammaübertragungseffekt mit einem Exponenten von (1/2.2) verwenden und dann die Ausgabe dieses Effekts verwenden.

 

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8 und Plattformupdate für Windows 7 [Desktop-Apps | Windows Store-Apps]
Unterstützte Mindestversion (Server) Windows 8 und Plattformupdate für Windows 7 [Desktop-Apps | Windows Store-Apps]
Header d2d1effects.h
Bibliothek d2d1.lib, dxguid.lib

 

Ausgabe-Bitmap

Die Ausgabe hat die gleiche Größe wie das Eingabebild.

ID2D1Effect