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 |
---|
Nach |
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.
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.
Zugehörige Themen