Efekt macierzy kolorów
Użyj efektu macierzy kolorów, aby zmienić wartości RGBA mapy bitowej.
Możesz użyć tego efektu, aby:
- Usuń kanał kolorów z obrazu.
- Zmniejsz kolor na obrazie.
- Zamień kanały kolorów.
- Połącz kanały kolorów.
Wiele wbudowanych efektów to specjalizacje macierzy kolorów zoptymalizowane pod kątem zamierzonego użycia efektów. Przykłady obejmują nasycenie , odcienie obracania, sepiioraz temperaturę i odcień.
Identyfikator CLSID dla tego efektu jest CLSID_D2D1ColorMatrix.
- przykładowy obraz
- właściwości Efekt
- tryby Alpha
- wymagania dotyczące
- Tematy pokrewne
Przykładowy obraz
W tym przykładzie przedstawiono obrazy wejściowe i wyjściowe efektu macierzy kolorów, który zamienia czerwone i niebieskie kanały.
Przed |
---|
![]() |
Po |
![]() |
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();
Ten efekt mnoży wartości RGBA obrazu przez macierz główną kolumny 5x4, jak pokazano w tym równaniu.
Ten efekt działa na prostych i premultiplied obrazów alfa.
Właściwości efektu
Nazwa wyświetlana i wyliczenie indeksu | Opis |
---|---|
ColorMatrix D2D1_COLORMATRIX_PROP_COLOR_MATRIX |
Macierz 5x4 wartości zmiennoprzecinkowych. Elementy macierzy nie są ograniczone i nie są jednostkowe. Wartością domyślną jest macierz tożsamości. Typ jest D2D1_MATRIX_5X4_F. Wartość domyślna to Matrix5x4F(1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0). |
AlphaMode D2D1_COLORMATRIX_PROP_ALPHA_MODE |
Tryb alfa danych wyjściowych. Aby uzyskać więcej informacji, zobacz tryby alfa. Typ jest D2D1_COLORMATRIX_ALPHA_MODE. Wartość domyślna to D2D1_COLORMATRIX_ALPHA_MODE_PREMULTIPLIED. |
ClampOutput D2D1_COLORMATRIX_PROP_CLAMP_OUTPUT |
Czy efekt zaciska wartości kolorów z zakresu od 0 do 1 przed przekazaniem wartości do następnego efektu na wykresie. Efekt zaciska wartości przed premultiplies alfa . Jeśli ustawisz wartość TRUE, efekt będzie zaciskać wartości. Jeśli ustawisz wartość FALSE, efekt nie zacisnie wartości kolorów, ale inne efekty, a powierzchnia wyjściowa może zacisać wartości, jeśli nie są wystarczająco precyzyjne. Typ to BOOL. Wartość domyślna to FALSE. |
Tryby alfa
Nazwa | Opis |
---|---|
D2D1_COLORMATRIX_ALPHA_MODE_PREMULTIPLIED | Efekt un-premultipliplies dane wejściowe, stosuje macierz kolorów i premultiplies dane wyjściowe. |
D2D1_COLORMATRIX_ALPHA_MODE_STRAIGHT | Efekt stosuje macierz kolorów bezpośrednio do danych wejściowych i nie premultiply danych wyjściowych. |
Wymagania
Wymaganie | Wartość |
---|---|
Minimalny obsługiwany klient | Windows 8 i aktualizacja platformy dla systemu Windows 7 [aplikacje klasyczne | Aplikacje ze Sklepu Windows] |
Minimalny obsługiwany serwer | Windows 8 i aktualizacja platformy dla systemu Windows 7 [aplikacje klasyczne | Aplikacje ze Sklepu Windows] |
Nagłówek | d2d1effects.h |
Biblioteka | d2d1.lib, dxguid.lib |