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 |
---|
![]() |
Dopo |
![]() |
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.
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.
Argomenti correlati