Condividi tramite


Luminanza per effetto alfa

Utilizzare la luminanza per l'effetto alfa per impostare il canale alfa sulla luminanza dell'immagine e impostare i canali di colore su 0. È possibile usare l'output di questo effetto per creare una sovrimpressione semitrasparente in base alla luminosità dell'immagine di input. In alternativa, è possibile usarlo per creare una maschera di immagine.

Nota

Questo effetto non ha proprietà.

 

Il CLSID per questo effetto è CLSID_D2D1LuminanceToAlpha.

Immagine di esempio

Questo esempio mostra l'output della luminanza dell'effetto alfa composito su una superficie bianca per mostrare l'opacità.

Prima
l'immagine prima dell'effetto.
Dopo
'immagine dopo la trasformazione.

 

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

Questo effetto imposta il canale alfa dell'output sulla luminanza dell'immagine di input usando questa matrice di colori.

la matrice di colori utilizzata dall'effetto per impostare il canale alfa.

Questo effetto utilizza e restituisce immagini alfa premoltiplicate. L'effetto non funzionerà sulle immagini alfa dritte, a meno che non siano completamente opache.

Nota

Poiché le immagini vengono archiviate in un formato con compensazione gamma, prima di calcolare la luminanza per un'immagine, è necessario prima eseguire la correzione gamma inversa per ottenere i valori di colore reali per l'immagine. Poiché le immagini vengono normalmente archiviate in gamma 2.2, è possibile usare l'effetto di trasferimento gamma con un esponente di (1/2.2) e quindi usare l'output di tale effetto.

 

Fabbisogno

Requisito Valore
Client minimo supportato Windows 8 e Aggiornamento della piattaforma per Windows 7 [app desktop | App di Windows Store]
Server minimo supportato Windows 8 e Aggiornamento della piattaforma per Windows 7 [app desktop | App di Windows Store]
Intestazione d2d1effects.h
Biblioteca d2d1.lib, dxguid.lib

 

Bitmap di output

L'output è la stessa dimensione dell'immagine di input.

ID2D1Effect