Sdílet prostřednictvím


Efekt správy barev

Pomocí efektu správy barev můžete transformovat obrázek z jednoho barevného profilu ICC (International Color Consortium) na jiný. Efekt transformuje obrázek podle specifikace ICC.

CLSID pro tento efekt je CLSID_D2D1ColorManagement.

Vlastnosti efektu

Zobrazovaný název a výčet indexu Popis
SourceContext
D2D1_COLORMANAGEMENT_PROP_SOURCE_COLOR_CONTEXT
Informace o zdrojovém barevném prostoru Typ je ID2D1ColorContext.
Výchozí hodnota je NULL.
SourceIntent
D2D1_COLORMANAGEMENT_PROP_SOURCE_RENDERING_INTENT
Který záměr vykreslování ICC se má použít. Typ je D2D1_COLORMANAGEMENT_RENDERING_INTENT.
Výchozí hodnota je D2D1_COLORMANAGEMENT_RENDERING_INTENT_PERCEPTUAL.
DestinationContext
D2D1_COLORMANAGEMENT_PROP_DESTINATION_COLOR_CONTEXT
Informace o cílovém barevném prostoru Typ je ID2D1ColorContext.
Výchozí hodnota je NULL.
DestinationIntent
D2D1_COLORMANAGEMENT_PROP_DESTINATION_RENDERING_INTENT
Který záměr vykreslování ICC se má použít. Typ je D2D1_COLORMANAGEMENT_RENDERING_INTENT.
Výchozí hodnota je D2D1_COLORMANAGEMENT_RENDERING_INTENT_PERCEPTUAL.
AlfaMode
D2D1_COLORMANAGEMENT_PROP_ALPHA_MODE
Jak interpretovat alfa data obsažená ve vstupním obrázku. Typ je D2D1_COLORMANAGEMENT_ALPHA_MODE.
Výchozí hodnota je D2D1_COLORMANAGEMENT_ALPHA_MODE_PREMULTIPLIED.
Kvalita
D2D1_COLORMANAGEMENT_PROP_QUALITY
Úroveň kvality transformace. Typ je D2D1_COLORMANAGEMENT_QUALITY.
Výchozí hodnota je D2D1_COLORMANAGEMENT_QUALITY_NORMAL.

Režimy záměru vykreslování

Výčet Popis
D2D1_COLORMANAGEMENT_RENDERING_INTENT_PERCEPTUAL Efekt komprimuje nebo rozšiřuje celou barevnou gamutu obrázku tak, aby vyplnil barevný gamut zařízení, aby vznikl perceptuálně příjemný výstup, který zachovává barevné detaily, ale může obětovat barevnou přesnost. To je užitečné pro obecnou reprodukci skutečného života obsahu, jako jsou fotky.
D2D1_COLORMANAGEMENT_RENDERING_INTENT_RELATIVE_COLORIMETRIC Efekt upraví všechny barvy, které spadají mimo gamut, které výstupní zařízení může vykreslit na nejbližší barvu, kterou lze vykreslit. Nezachová bílý bod.
D2D1_COLORMANAGEMENT_RENDERING_INTENT_SATURATION Efekt zachovává sytost čistých barev na obrázku na možných nákladech na odstín a světlost. Je užitečná pro grafiku, jako jsou grafy a diagramy.
D2D1_COLORMANAGEMENT_RENDERING_INTENT_ABSOLUTE_COLORIMETRIC Efekt upraví všechny barvy, které spadají mimo gamut, které výstupní zařízení může vykreslit na nejbližší barvu, kterou lze vykreslit. Efekt nezmění barvy v gamutu a zachová bílý bod.

Režimy alfa vstupního obrázku

Výčet Popis
D2D1_COLORMANAGEMENT_ALPHA_MODE_PREMULTIPLIED Efekt předpokládá, že je premultipulován režim alfa.
D2D1_COLORMANAGEMENT_ALPHA_MODE_STRAIGHT Efekt předpokládá, že alfa režim je přímý.

změny chování D2D1_GAMMA1_G2084

Pokud vaše aplikace používá D2D1_GAMMA1_G2084 mezeru nebo jednu z DXGI_COLOR_SPACE_TYPE výčtových hodnot, které používají barevný prostor SMPTE ST.2084 (Perceptual Quantizer), pak aplikace hodlá pracovat s daty HDR.

ID2D1DeviceContext5::CreateColorContextFromSimpleColorProfile a ID2D1DeviceContext5::CreateColorContextFromDxgiColorSpace rozhraní API pro to nepočítá; obsah HDR se při operaci G2084 DeGamma přizpůsobí rozsahu 0–1.

V praxi používá obsah kódovaný v tomto gama prostoru odkaz WhiteLevel of 10 000 Nits, který by obvykle byl reprezentován v CCCS jako 10 000 / 80 = 125,0. Pro lepší usnadnění aplikace je tedy nejjednodušší použít tento gama převod tak, aby také škálovat světelnost podle faktoru 125. Od Windows 10 verze 1809 (10.0; Build 17763), chování efektu správy barev je takové, aby toto měřítko použilo. To znamená, že jako vývojář nemusíte v kanálu používat druhý efekt úpravy na úrovni white.

Dodržování předpisů se specifikací ICC

Efekt správy barev odpovídá specifikaci ICC verze 4.3 s těmito omezeními:

  • Efekt podporuje 1, 3 a 4 kanálové barevné prostory.
  • Efekt nepodporuje profily ColorSpace ani Pojmenované barvy.

Chování alfa kanálu

Obecně platí, že efekt nastaví alfa na 1 (neprůpaný), pokud ve zdrojovém obrázku nejsou žádná alfa data a alfa data se zahodí, pokud v cílovém obrázku není žádná místnost. Tato tabulka popisuje chování alfa.

Barevný prostor zdroje, formát pixelu Cílový barevný prostor, formát pixelu Alfa chování
1 kanál, formát R pixelů
1 kanál, formát R pixelů (Žádná alfa data)
1 kanál, formát pixelu RGBA Alfa data jsou nastavená na hodnotu 1 (neprůžné)
3kanálový formát RGBA pixelů Alfa data jsou nastavená na hodnotu 1 (neprůžné)
4kanálový formát RGBA pixelů (Žádná alfa data)
1 kanál, formát pixelu RGBA
1 kanál, formát R pixelů Alfa data se zahodí.
1 kanál, formát pixelu RGBA Data alfa se předávají prostřednictvím
3kanálový formát RGBA pixelů Data alfa se předávají prostřednictvím
4kanálový formát RGBA pixelů Alfa data se zahodí.
3kanálový formát RGBA pixelů
1 kanál, formát R pixelů Alfa data se zahodí.
1 kanál, formát pixelu RGBA Data alfa se předávají prostřednictvím
3kanálový formát RGBA pixelů Data alfa se předávají prostřednictvím
4kanálový formát RGBA pixelů Alfa data se zahodí.
4kanálový formát RGBA pixelů
1 kanál, formát R pixelů (Žádná alfa data)
1 kanál, formát pixelu RGBA Alfa data jsou nastavená na hodnotu 1 (neprůžné)
3kanálový formát RGBA pixelů Alfa data jsou nastavená na hodnotu 1 (neprůžné)
4kanálový formát RGBA pixelů (Žádná alfa data)

Režimy kvality

Režim Popis
D2D1_COLORMANAGEMENT_QUALITY_PROOF Nejnižší režim kvality. Tento režim vyžaduje úroveň funkce 9_1 nebo vyšší.
D2D1_COLORMANAGEMENT_QUALITY_NORMAL Normální režim kvality. Tento režim vyžaduje úroveň funkce 9_1 nebo vyšší.
D2D1_COLORMANAGEMENT_QUALITY_BEST Nejlepší režim kvality. Tento režim vyžaduje úroveň funkce 10_0 nebo vyšší, stejně jako vyrovnávací paměti přesnosti s plovoucí desetinnou čárkou. Tento režim podporuje přesnost s plovoucí desetinnou čárkou a rozšířený rozsah definovaný ve specifikaci ICC verze 4.3.

Efekt správy barev selže při kreslení, pokud aplikace požaduje režim kvality, který hardware nepodporuje. Úroveň funkce můžete určit při volání D3D11CreateDevice. Podporu vyrovnávací paměti s plovoucí desetinnou čárkou můžete zkontrolovat voláním ID2D1EffectContext::IsBufferPrecisionSupported s hodnotou D2D1_BUFFER_PRECISION_32BPC_FLOAT.

Ukázkový kód

Příklad tohoto efektu, stáhněte si Direct2D efekty úpravy foteka viz Lekce 4 ukázky.

Požadavky

Požadavek Hodnota
Minimální podporovaný klient Windows 8 a Aktualizace platformy pro Windows 7 [desktopové aplikace | Aplikace pro Windows Store]
Minimální podporovaný server Windows 8 a Aktualizace platformy pro Windows 7 [desktopové aplikace | Aplikace pro Windows Store]
Záhlaví d2d1effects.h
Knihovna d2d1.lib, dxguid.lib
  • rozhraní ID2D1Effect