Freigeben über


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

Mit diesem Effekt wird der Alphakanal der Ausgabe auf die Leuchtdichte des Eingabebilds mithilfe dieser Farbmatrix festgelegt.

der Farbmatrix, die der Effekt zum Festlegen des Alphakanals verwendet.

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.

ID2D1Effect-