Leuchtdichte zu Alphaeffekt
Verwenden Sie die Leuchtdichte zum Alphaeffekt, um den Alphakanal auf die Leuchtdichte des Bilds und die Farbkanäle auf 0 (0) zu setzen. Sie können die Ausgabe dieses Effekts verwenden, um eine halbtransparente Überlagerung basierend auf der Helligkeit des Eingabebilds zu erstellen. Sie können sie 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 gezeigt, die über einer weißen Oberfläche zusammengesetzt ist, um Deckkraft zu zeigen.
| Vorher |
|---|
![]() |
| Danach |
![]() |
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 Leuchtdichte des Eingabebilds fest.

Dieser Effekt verwendet und gibt prämultipliierte Alphabilder aus. Der Effekt funktioniert nur bei geraden Alphabildern, wenn sie vollständig deckend sind.
Hinweis
Da Bilder in einem Gammabewertungsformat gespeichert werden, sollten Sie vor der Berechnung der Leuchtdichte für ein Bild zunächst eine inverse Gammakorrektur durchführen, um die tatsächlichen 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.
Requirements (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 |
Ausgabebitmap
Die Ausgabe hat die gleiche Größe wie das Eingabebild.

