Effetto matrice di colore
Usare l'effetto matrice di colore per modificare i valori RGBA di una bitmap.
È possibile usare questo effetto per:
- Rimuovere un canale di colore da un'immagine.
- Ridurre il colore in un'immagine.
- Scambia canali di colore.
- Combinare i canali di colore.
Molti effetti predefiniti sono specializzazioni della matrice di colore ottimizzate per l'uso previsto degli effetti. Gli esempi includono saturazione, rotazione delle tonalità, sepia e temperatura e tinta.
Il CLSID per questo effetto è CLSID_D2D1ColorMatrix.
Immagine di esempio
L'esempio seguente mostra le immagini di input e output dell'effetto matrice di colore che scambia i canali rossi e blu.
Prima |
---|
After |
ComPtr<ID2D1Effect> colorMatrixEffect;
m_d2dContext->CreateEffect(CLSID_D2D1ColorMatrix, &colorMatrixEffect);
colorMatrixEffect->SetInput(0, bitmap);
D2D1_MATRIX_5X4_F matrix = D2D1::Matrix5x4F(0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0);
colorMatrixEffect->SetValue(D2D1_COLORMATRIX_PROP_COLOR_MATRIX, matrix);
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(colorMatrixEffect.Get());
m_d2dContext->EndDraw();
Questo effetto moltiplica i valori RGBA dell'immagine in base a una matrice principale di colonna 5x4, come illustrato in questa equazione.
Questo effetto funziona su immagini alfa dritte e premultiplied.
Proprietà dell'effetto
Enumerazione nome visualizzato e indice | Descrizione |
---|---|
Colormatrix D2D1_COLORMATRIX_PROP_COLOR_MATRIX |
Matrice 5x4 di valori float. Gli elementi nella matrice non sono delimitati e non sono unitless. Il valore predefinito è la matrice di identità. Il tipo è D2D1_MATRIX_5X4_F. Il valore predefinito è Matrix5x4F(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0). |
AlphaMode D2D1_COLORMATRIX_PROP_ALPHA_MODE |
Modalità alfa dell'output. Per altre informazioni, vedere Modalità Alfa . Il tipo è D2D1_COLORMATRIX_ALPHA_MODE. Il valore predefinito è D2D1_COLORMATRIX_ALPHA_MODE_PREMULTIPLIED. |
ClampOutput D2D1_COLORMATRIX_PROP_CLAMP_OUTPUT |
Se l'effetto blocca i valori di colore su 0 e 1 prima che l'effetto passi i valori all'effetto successivo nel grafico. L'effetto blocca i valori prima che premultiplifichi l'alfa . Se si imposta questa opzione su TRUE, l'effetto blocca i valori. Se si imposta questa opzione su FALSE, l'effetto non blocca i valori di colore, ma altri effetti e la superficie di output possono bloccare i valori se non sono di precisione sufficiente. Il tipo è BOOL. Il valore predefinito è FALSE. |
Modalità Alfa
Nome | Descrizione |
---|---|
D2D1_COLORMATRIX_ALPHA_MODE_PREMULTIPLIED | L'effetto non premultiplizza l'input, applica la matrice di colori e premultiplizza l'output. |
D2D1_COLORMATRIX_ALPHA_MODE_STRAIGHT | L'effetto applica la matrice di colore direttamente all'input e non premultiply l'output. |
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 |