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

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