Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 |