Efekt zarządzania kolorami
Użyj efektu zarządzania kolorami, aby przekształcić obraz z jednego profilu kolorów ICC (International Color Consortium) na inny. Efekt przekształca obraz zgodnie ze specyfikacją ICC.
Identyfikator CLSID dla tego efektu jest CLSID_D2D1ColorManagement.
- właściwości Efekt
- tryby intencji renderowania
- tryby alfa obrazu wejściowego
- zgodność ze specyfikacją ICC
- zachowania kanału alpha
- tryby jakości
- przykładowy kod
- wymagania dotyczące
- Tematy pokrewne
Właściwości efektu
Nazwa wyświetlana i wyliczenie indeksu | Opis |
---|---|
SourceContext D2D1_COLORMANAGEMENT_PROP_SOURCE_COLOR_CONTEXT |
Informacje o przestrzeni kolorów źródła. Typ to ID2D1ColorContext. Wartość domyślna to NULL. |
SourceIntent D2D1_COLORMANAGEMENT_PROP_SOURCE_RENDERING_INTENT |
Która intencja renderowania ICC ma być używana. Typ to D2D1_COLORMANAGEMENT_RENDERING_INTENT. Wartość domyślna to D2D1_COLORMANAGEMENT_RENDERING_INTENT_PERCEPTUAL. |
DestinationContext D2D1_COLORMANAGEMENT_PROP_DESTINATION_COLOR_CONTEXT |
Informacje o przestrzeni kolorów miejsca docelowego. Typ to ID2D1ColorContext. Wartość domyślna to NULL. |
DestinationIntent D2D1_COLORMANAGEMENT_PROP_DESTINATION_RENDERING_INTENT |
Która intencja renderowania ICC ma być używana. Typ to D2D1_COLORMANAGEMENT_RENDERING_INTENT. Wartość domyślna to D2D1_COLORMANAGEMENT_RENDERING_INTENT_PERCEPTUAL. |
AlphaMode D2D1_COLORMANAGEMENT_PROP_ALPHA_MODE |
Jak interpretować dane alfa zawarte w obrazie wejściowym. Typ jest D2D1_COLORMANAGEMENT_ALPHA_MODE. Wartość domyślna to D2D1_COLORMANAGEMENT_ALPHA_MODE_PREMULTIPLIED. |
Jakość D2D1_COLORMANAGEMENT_PROP_QUALITY |
Poziom jakości transformacji. Typ jest D2D1_COLORMANAGEMENT_QUALITY. Wartość domyślna to D2D1_COLORMANAGEMENT_QUALITY_NORMAL. |
Tryby intencji renderowania
Wyliczenie | Opis |
---|---|
D2D1_COLORMANAGEMENT_RENDERING_INTENT_PERCEPTUAL | Efekt kompresuje lub rozszerza pełną gamę kolorów obrazu, aby wypełnić gamę kolorów urządzenia, aby wygenerować przekonujące dane wyjściowe, które zachowują szczegóły kolorów, ale mogą poświęcić dokładność kolorów. Jest to przydatne w przypadku ogólnego odtwarzania treści w prawdziwym życiu, takich jak zdjęcia. |
D2D1_COLORMANAGEMENT_RENDERING_INTENT_RELATIVE_COLORIMETRIC | Efekt dostosowuje wszelkie kolory znajdujące się poza gamą, które urządzenie wyjściowe może renderować do najbliższego koloru, który można renderować. Nie zachowuje białego punktu. |
D2D1_COLORMANAGEMENT_RENDERING_INTENT_SATURATION | Efekt zachowuje nasycenie czystych kolorów na obrazie kosztem odcieni i lekkości. Jest to przydatne w przypadku grafiki, takich jak wykresy i diagramy. |
D2D1_COLORMANAGEMENT_RENDERING_INTENT_ABSOLUTE_COLORIMETRIC | Efekt dostosowuje wszelkie kolory znajdujące się poza gamą, które urządzenie wyjściowe może renderować do najbliższego koloru, który można renderować. Efekt nie zmienia kolorów w gamie i zachowuje biały punkt. |
Tryby alfa obrazu wejściowego
Wyliczenie | Opis |
---|---|
D2D1_COLORMANAGEMENT_ALPHA_MODE_PREMULTIPLIED | Efekt zakłada, że tryb alfa jest premultiplied. |
D2D1_COLORMANAGEMENT_ALPHA_MODE_STRAIGHT | Efekt zakłada, że tryb alfa jest prosty. |
D2D1_GAMMA1_G2084 zmiany zachowania
Jeśli aplikacja używa przestrzeni D2D1_GAMMA1_G2084 lub jednej z wartości wyliczenia DXGI_COLOR_SPACE_TYPE używających przestrzeni kolorów SMPTE ST.2084 (Perceptual Quantizer), aplikacja zamierza pracować z danymi HDR.
ID2D1DeviceContext5::CreateColorContextFromSimpleColorProfile i ID2D1DeviceContext5::CreateColorContextFromDxgiColorSpace interfejsy API tego nie uwzględniają; natomiast zawartość HDR jest skalowana w celu dopasowania do zakresu 0-1 podczas operacji G2084 DeGamma.
W praktyce zawartość zakodowana w tej przestrzeni gamma używa odwołania WhiteLevel z 10 000 Nits, które normalnie byłyby reprezentowane w CCCS jako 10 000 / 80 = 125.0. Dlatego, aby lepiej ułatwić aplikację, najprostsza jest konwersja gamma, aby również skalować lumincję o współczynnik 125. Od systemu Windows 10 w wersji 1809 (10.0; Kompilacja 17763), zachowanie efektu zarządzania kolorami jest takie, że stosuje to skalowanie. Oznacza to, że jako deweloper nie musisz stosować drugiego efektu dostosowania na poziomie białym do potoku.
Zgodność ze specyfikacją ICC
Efekt zarządzania kolorami jest zgodny ze specyfikacją ICC w wersji 4.3, z następującymi ograniczeniami:
- Efekt obsługuje 1, 3 i 4 przestrzenie kolorów kanału.
- Efekt nie obsługuje profilów ColorSpace ani Named Color.
Zachowanie kanału alfa
Ogólnie rzecz biorąc, efekt ustawia wartość alfa na 1 (nieprzezroczyste), jeśli na obrazie źródłowym nie ma danych alfa, a dane alfa zostaną odrzucone, jeśli nie ma miejsca na obrazie docelowym. W poniższej tabeli opisano zachowanie alfa.
Przestrzeń kolorów źródła, format pikseli | Docelowa przestrzeń kolorów, format pikseli | Zachowanie alfa |
---|---|---|
1 kanał, format pikseli języka R |
1 kanał, format pikseli języka R | (Brak danych alfa) |
1 kanał, format pikseli RGBA | Dane alfa są ustawione na 1 (nieprzezroczyste) | |
3 kanał, format pikseli RGBA | Dane alfa są ustawione na 1 (nieprzezroczyste) | |
4 kanał, format pikseli RGBA | (Brak danych alfa) | |
1 kanał, format pikseli RGBA |
1 kanał, format pikseli języka R | Dane alfa są odrzucane |
1 kanał, format pikseli RGBA | Dane alfa są przekazywane | |
3 kanał, format pikseli RGBA | Dane alfa są przekazywane | |
4 kanał, format pikseli RGBA | Dane alfa są odrzucane | |
3 kanał, format pikseli RGBA |
1 kanał, format pikseli języka R | Dane alfa są odrzucane |
1 kanał, format pikseli RGBA | Dane alfa są przekazywane | |
3 kanał, format pikseli RGBA | Dane alfa są przekazywane | |
4 kanał, format pikseli RGBA | Dane alfa są odrzucane | |
4 kanał, format pikseli RGBA |
1 kanał, format pikseli języka R | (Brak danych alfa) |
1 kanał, format pikseli RGBA | Dane alfa są ustawione na 1 (nieprzezroczyste) | |
3 kanał, format pikseli RGBA | Dane alfa są ustawione na 1 (nieprzezroczyste) | |
4 kanał, format pikseli RGBA | (Brak danych alfa) |
Tryby jakości
Tryb | Opis |
---|---|
D2D1_COLORMANAGEMENT_QUALITY_PROOF | Tryb najniższej jakości. Ten tryb wymaga poziomu funkcji 9_1 lub nowszego. |
D2D1_COLORMANAGEMENT_QUALITY_NORMAL | Normalny tryb jakości. Ten tryb wymaga poziomu funkcji 9_1 lub nowszego. |
D2D1_COLORMANAGEMENT_QUALITY_BEST | Najlepszy tryb jakości. Ten tryb wymaga poziomu funkcji 10_0 lub nowszego, a także precyzji zmiennoprzecinkowych. Ten tryb obsługuje precyzję zmiennoprzecinkowa, a także rozszerzony zakres zdefiniowany w specyfikacji ICC v4.3. |
Efekt zarządzania kolorami kończy się niepowodzeniem podczas rysowania, jeśli aplikacja żąda trybu jakości, który nie jest obsługiwany przez sprzęt. Poziom funkcji można określić podczas wywoływania D3D11CreateDevice. Możesz sprawdzić obsługę buforu zmiennoprzecinkowego, wywołując ID2D1EffectContext::IsBufferPrecisionSupported z wartością D2D1_BUFFER_PRECISION_32BPC_FLOAT.
Przykładowy kod
Aby uzyskać przykład tego efektu, pobierz przykład Direct2D efekty korekty zdjęciai zobacz lekcję 4 próbki.
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 |
Tematy pokrewne
- interfejs ID2D1Effect