Luminanza a effetto alfa
Usare 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
In questo esempio viene illustrato l'output della luminanza per l'effetto alfa composito su una superficie bianca per mostrare l'opacità.
Prima |
---|
After |
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 sono in genere archiviate a 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.
Requisiti
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 |
Libreria | d2d1.lib, dxguid.lib |
Bitmap di output
L'output è la stessa dimensione dell'immagine di input.
Argomenti correlati