Farbverwaltungseffekt
Verwenden Sie den Farbverwaltungseffekt, um ein Bild von einem ICC (International Color Consortium) Farbprofil in ein anderes zu transformieren. Der Effekt transformiert das Bild gemäß der ICC-Spezifikation.
Die CLSID für diesen Effekt ist CLSID_D2D1ColorManagement.
- Effekteigenschaften
- Rendern von Absichtsmodi
- Eingabebild-Alphamodi
- Einhaltung der ICC-Spezifikation
- Alphakanalverhalten
- Qualitätsmodi
- Beispielcode
- Anforderungen
- Zugehörige Themen
Effekteigenschaften
Anzeigename und Indexaufzählung | BESCHREIBUNG |
---|---|
SourceContext D2D1_COLORMANAGEMENT_PROP_SOURCE_COLOR_CONTEXT |
Die Quellfarbenbereichsinformationen. Der Typ ist ID2D1ColorContext. Der Standardwert ist NULL. |
SourceIntent D2D1_COLORMANAGEMENT_PROP_SOURCE_RENDERING_INTENT |
Welche ICC-Rendering-Absicht verwendet werden soll. Der Typ ist D2D1_COLORMANAGEMENT_RENDERING_INTENT. Der Standardwert ist D2D1_COLORMANAGEMENT_RENDERING_INTENT_PERCEPTUAL. |
DestinationContext D2D1_COLORMANAGEMENT_PROP_DESTINATION_COLOR_CONTEXT |
Die Zielfarbenrauminformationen. Der Typ ist ID2D1ColorContext. Der Standardwert ist NULL. |
DestinationIntent D2D1_COLORMANAGEMENT_PROP_DESTINATION_RENDERING_INTENT |
Welche ICC-Rendering-Absicht verwendet werden soll. Der Typ ist D2D1_COLORMANAGEMENT_RENDERING_INTENT. Der Standardwert ist D2D1_COLORMANAGEMENT_RENDERING_INTENT_PERCEPTUAL. |
AlphaMode D2D1_COLORMANAGEMENT_PROP_ALPHA_MODE |
So interpretieren Sie Alphadaten, die im Eingabebild enthalten sind. Der Typ ist D2D1_COLORMANAGEMENT_ALPHA_MODE. Der Standardwert ist D2D1_COLORMANAGEMENT_ALPHA_MODE_PREMULTIPLIED. |
Qualität D2D1_COLORMANAGEMENT_PROP_QUALITY |
Die Qualitätsebene der Transformation. Der Typ ist D2D1_COLORMANAGEMENT_QUALITY. Der Standardwert ist D2D1_COLORMANAGEMENT_QUALITY_NORMAL. |
Rendern von Absichtsmodi
Enumeration | Beschreibung |
---|---|
D2D1_COLORMANAGEMENT_RENDERING_INTENT_PERCEPTUAL | Der Effekt komprimiert oder erweitert die vollständige Farbskala des Bilds, um die Farbskala des Geräts zu füllen, um eine wahrnehmungsmäßig ansprechende Ausgabe zu erzeugen, die Farbdetails beibehalten, aber möglicherweise farbmetrische Genauigkeit opfern kann. Es ist nützlich für die allgemeine Wiedergabe von realen Inhalten wie Fotos. |
D2D1_COLORMANAGEMENT_RENDERING_INTENT_RELATIVE_COLORIMETRIC | Der Effekt passt alle Farben an, die außerhalb des Gamuts liegen, die das Ausgabegerät auf die nächstgelegene Farbe rendern kann, die gerendert werden kann. Es behält den weißen Punkt nicht bei. |
D2D1_COLORMANAGEMENT_RENDERING_INTENT_SATURATION | Der Effekt behält die Sättigung von reinen Farben im Bild bei der möglichen Kosten von Farbton und Licht. Es ist nützlich für Grafiken wie Diagramme und Diagramme. |
D2D1_COLORMANAGEMENT_RENDERING_INTENT_ABSOLUTE_COLORIMETRIC | Der Effekt passt alle Farben an, die außerhalb des Gamuts liegen, die das Ausgabegerät auf die nächstgelegene Farbe rendern kann, die gerendert werden kann. Der Effekt ändert die Farbkombination nicht und behält den weißen Punkt bei. |
Eingabebild-Alphamodi
Enumeration | Beschreibung |
---|---|
D2D1_COLORMANAGEMENT_ALPHA_MODE_PREMULTIPLIED | Der Effekt nimmt an, dass der Alphamodus vormultipliziert ist. |
D2D1_COLORMANAGEMENT_ALPHA_MODE_STRAIGHT | Der Effekt nimmt an, dass der Alphamodus gerade ist. |
D2D1_GAMMA1_G2084 Verhaltensänderungen
Wenn Ihre Anwendung den D2D1_GAMMA1_G2084 Leerraum oder einen der DXGI_COLOR_SPACE_TYPE Enumerationswerte verwendet, die den SMPTE ST.2084 (Perceptual Quantizer) Farbraum verwenden, beabsichtigt die Anwendung, mit HDR-Daten zu arbeiten.
Die ID2D1DeviceContext5::CreateColorContextFromSimpleColorProfile und ID2D1DeviceContext5::CreateColorContextFromDxgiColorSpace-APIs sind dafür nicht verantwortlich; Stattdessen wird der HDR-Inhalt skaliert, um in den Bereich 0-1 während des G2084 DeGamma-Vorgangs anzupassen.
In der Praxis verwendet der Inhalt, der in diesem Gammaraum codiert ist, einen Verweis whiteLevel von 10.000 Nits, der normalerweise in CCCS als 10.000 / 80 = 125.0 dargestellt wird. Um Ihre App besser zu erleichtern, ist es also einfach, dass diese Gammakonvertierung auch die Luminance durch einen Faktor von 125 skaliert. Ab Windows 10, Version 1809 (10,0; Build 17763), das Verhalten des Farbverwaltungseffekts ist so, dass diese Skalierung angewendet wird. Das bedeutet, dass Sie als Entwickler keinen zweiten Anpassungseffekt auf Weiße Ebene in die Pipeline anwenden müssen.
Einhaltung der ICC-Spezifikation
Der Farbverwaltungseffekt ist mit der ICC v4.3-Spezifikation kompatibel mit diesen Einschränkungen:
- Der Effekt unterstützt 1, 3 und 4 Kanalfarben leer.
- Der Effekt unterstützt colorSpace oder benannte Farbprofile nicht.
Alphakanalverhalten
Im Allgemeinen legt der Effekt Alpha auf 1 (undurchsichtig) fest, wenn keine Alphadaten im Quellbild vorhanden sind und die Alphadaten verworfen werden, wenn kein Raum im Zielbild vorhanden ist. Die Tabelle hier beschreibt das Alphaverhalten.
Quellfarbe, Pixelformat | Zielfarbe, Pixelformat | Alphaverhalten |
---|---|---|
1 Kanal, R-Pixelformat |
1 Kanal, R-Pixelformat | (Keine Alphadaten) |
1 Kanal, RGBA-Pixelformat | Alphadaten werden auf 1 (undurchsichtig) festgelegt. | |
3 Kanal, RGBA-Pixelformat | Alphadaten werden auf 1 (undurchsichtig) festgelegt. | |
4 Kanal, RGBA-Pixelformat | (Keine Alphadaten) | |
1 Kanal, RGBA-Pixelformat |
1 Kanal, R-Pixelformat | Alphadaten werden verworfen |
1 Kanal, RGBA-Pixelformat | Alphadaten werden durchlaufen | |
3 Kanal, RGBA-Pixelformat | Alphadaten werden durchlaufen | |
4 Kanal, RGBA-Pixelformat | Alphadaten werden verworfen | |
3 Kanal, RGBA-Pixelformat |
1 Kanal, R-Pixelformat | Alphadaten werden verworfen |
1 Kanal, RGBA-Pixelformat | Alphadaten werden durchlaufen | |
3 Kanal, RGBA-Pixelformat | Alphadaten werden durchlaufen | |
4 Kanal, RGBA-Pixelformat | Alphadaten werden verworfen | |
4 Kanal, RGBA-Pixelformat |
1 Kanal, R-Pixelformat | (Keine Alphadaten) |
1 Kanal, RGBA-Pixelformat | Alphadaten werden auf 1 festgelegt (undurchsichtig) | |
3 Kanal, RGBA-Pixelformat | Alphadaten werden auf 1 festgelegt (undurchsichtig) | |
4 Kanal, RGBA-Pixelformat | (Keine Alphadaten) |
Qualitätsmodi
Mode | BESCHREIBUNG |
---|---|
D2D1_COLORMANAGEMENT_QUALITY_PROOF | Der niedrigste Qualitätsmodus. Dieser Modus erfordert Featureebene 9_1 oder höher. |
D2D1_COLORMANAGEMENT_QUALITY_NORMAL | Normaler Qualitätsmodus. Dieser Modus erfordert Featureebene 9_1 oder höher. |
D2D1_COLORMANAGEMENT_QUALITY_BEST | Der beste Qualitätsmodus. Dieser Modus erfordert Featureebene 10_0 oder höher sowie Gleitkommagenauigkeitspuffer. Dieser Modus unterstützt die Gleitkommagenauigkeit sowie den erweiterten Bereich, wie in der ICC v4.3-Spezifikation definiert. |
Der Farbverwaltungseffekt schlägt beim Zeichnen fehl, wenn die Anwendung einen Qualitätsmodus anfordert, der von der Hardware nicht unterstützt wird. Sie können die Featureebene bestimmen, wenn Sie D3D11CreateDevice aufrufen. Sie können die Unterstützung für Gleitkommapuffer überprüfen, indem Sie ID2D1EffectContext::IsBufferPrecisionSupported mit dem Wert D2D1_BUFFER_PRECISION_32BPC_FLOAT aufrufen.
Beispielcode
Laden Sie ein Beispiel für diesen Effekt herunter, laden Sie das Beispiel zur Anpassung von Direct2D-Effekten herunter, und lesen Sie Lektion 4 des Beispiels.
Requirements (Anforderungen)
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 8 und Plattformupdate für Windows 7 [Desktop-Apps | Windows Store Apps] |
Unterstützte Mindestversion (Server) | Windows 8 und Plattformupdate für Windows 7 [Desktop-Apps | Windows Store Apps] |
Header | d2d1effects.h |
Bibliothek | d2d1.lib, dxguid.lib |