Leuchtdichte zu Alphaeffekt
Verwenden Sie die Leuchtdichte, um den Alphakanal auf die Leuchtdichte des Bilds festzulegen und die Farbkanäle auf 0 festzulegen. 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.
Anmerkung
Dieser Effekt hat keine Eigenschaften.
Die CLSID für diesen Effekt ist CLSID_D2D1LuminanceToAlpha.
Beispielbild
This example shows the output of the luminance to alpha effect composited over a white surface to show opacity.
Vor |
---|
![]() |
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();
Mit diesem Effekt wird der Alphakanal der Ausgabe auf die Leuchtdichte des Eingabebilds mithilfe dieser Farbmatrix festgelegt.
Dieser Effekt verbraucht und gibt prämultiplizierte Alphabilder aus. Der Effekt funktioniert nicht auf geraden Alphabildern, es sei denn, sie sind vollständig undurchsichtig.
Anmerkung
Da Bilder in einem gammakompensierten Format gespeichert werden, sollten Sie vor der Berechnung der Leuchtdichte für ein Bild zuerst eine umgekehrte Gammakorrektur durchführen, um die tatsächlichen Farbwerte für das Bild abzurufen. Da Bilder normalerweise mit 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 |
---|---|
Mindestens unterstützter Client | Windows 8 und Plattformupdate für Windows 7 [Desktop-Apps | Windows Store-Apps] |
Mindestens unterstützter Server | Windows 8 und Plattformupdate für Windows 7 [Desktop-Apps | Windows Store-Apps] |
Kopfball | d2d1effects.h |
Bibliothek | d2d1.lib, dxguid.lib |
Ausgabebitmap
Die Ausgabe ist die gleiche Größe wie das Eingabebild.
Verwandte Themen