Farbverwaltungseffekt
Verwenden Sie den Farbverwaltungseffekt, um ein Bild von einem ICC -Farbprofil (International Color Consortium) in ein anderes zu transformieren. Der Effekt transformiert das Bild gemäß der ICC-Spezifikation.
Die CLSID für diesen Effekt ist CLSID_D2D1ColorManagement.
- Effekteigenschaften
- Renderingabsichtsmodi
- Alphamodi für Eingabebilder
- Einhaltung der ICC-Spezifikation
- Alphakanalverhalten
- Qualitätsmodi
- Beispielcode
- Anforderungen
- Verwandte Themen
Effekteigenschaften
Anzeigename und Indexenumeration | Beschreibung |
---|---|
SourceContext D2D1_COLORMANAGEMENT_PROP_SOURCE_COLOR_CONTEXT |
Die Informationen zum Quellfarbraum. Der Typ ist ID2D1ColorContext. Der Standardwert ist NULL. |
SourceIntent D2D1_COLORMANAGEMENT_PROP_SOURCE_RENDERING_INTENT |
Welche ICC-Renderingabsicht 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 Zielfarbrauminformationen. Der Typ ist ID2D1ColorContext. Der Standardwert ist NULL. |
DestinationIntent D2D1_COLORMANAGEMENT_PROP_DESTINATION_RENDERING_INTENT |
Welche ICC-Renderingabsicht 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
Aufzählung | Beschreibung |
---|---|
D2D1_COLORMANAGEMENT_RENDERING_INTENT_PERCEPTUAL | Der Effekt komprimiert oder erweitert die volle Farbskala des Bilds, um die Farbskala des Geräts zu füllen, um eine wahrnehmbar ansprechende Ausgabe zu erzeugen, die Farbdetails bewahrt, aber möglicherweise die farbmetrische Genauigkeit beeinträchtigt. Es ist nützlich für die allgemeine Reproduktion von realen Lebensinhalten wie Fotos. |
D2D1_COLORMANAGEMENT_RENDERING_INTENT_RELATIVE_COLORIMETRIC | Der Effekt passt alle Farben an, die außerhalb des Farbraums liegen, den das Ausgabegerät in der nächstgelegenen Farbe rendern kann, die gerendert werden kann. Er 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 auf kosten von Farbton und Helligkeit bei. 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 Farbraums liegen, den das Ausgabegerät in der nächstgelegenen Farbe rendern kann, die gerendert werden kann. Der Effekt ändert die Farbskala nicht und behält den weißen Punkt bei. |
Alphamodi für Eingabebilder
Aufzählung | Beschreibung |
---|---|
D2D1_COLORMANAGEMENT_ALPHA_MODE_PREMULTIPLIED | Der Effekt geht davon aus, dass der Alphamodus prämultipliziert ist. |
D2D1_COLORMANAGEMENT_ALPHA_MODE_STRAIGHT | Der Effekt geht davon aus, 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 Farbraum SMPTE ST.2084 (Perceptual Quantizer) verwenden, beabsichtigt die Anwendung, mit HDR-Daten zu arbeiten.
Die ID2D1DeviceContext5::CreateColorContextFromSimpleColorProfile und ID2D1DeviceContext5::CreateColorContextFromDxgiColorSpace APIs berücksichtigen dies nicht; stattdessen wird der HDR-Inhalt während des G2084 DeGamma-Vorgangs so skaliert, dass er in den 0-1-Bereich passt.
In der Praxis verwendet Inhalt, der in diesem Gammabereich codiert ist, einen Verweis WhiteLevel von 10.000 Nits, die normalerweise in CCCS als 10.000 / 80 = 125,0 dargestellt werden. Um Ihre App besser zu vereinfachen, ist es für diese Gammakonvertierung am einfachsten, auch die Leuchtdichte um den Faktor 125 zu skalieren. Ab Windows 10, Version 1809 (10.0; Build 17763), das Verhalten des Farbverwaltungseffekts ist so, dass er diese Skalierung anwendet. Das bedeutet, dass Sie als Entwickler keinen zweiten Anpassungseffekt auf weißer Ebene auf die Pipeline anwenden müssen.
Einhaltung der ICC-Spezifikation
Der Farbverwaltungseffekt entspricht der ICC v4.3-Spezifikation mit diesen Einschränkungen:
- Der Effekt unterstützt 1, 3 und 4 Kanalfarbräume.
- Der Effekt unterstützt keine ColorSpace- oder Named Color-Profile.
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. In der folgenden Tabelle wird das Alphaverhalten beschrieben.
Quellfarbraum, Pixelformat | Zielfarbraum, Pixelformat | Alphaverhalten |
---|---|---|
1 Kanal, R-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) | |
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
Modus | Beschreibung |
---|---|
D2D1_COLORMANAGEMENT_QUALITY_PROOF | Der niedrigste Qualitätsmodus. Für diesen Modus ist die Featureebene 9_1 oder höher erforderlich. |
D2D1_COLORMANAGEMENT_QUALITY_NORMAL | Normaler Qualitätsmodus. Für diesen Modus ist die Featureebene 9_1 oder höher erforderlich. |
D2D1_COLORMANAGEMENT_QUALITY_BEST | Der beste Qualitätsmodus. Dieser Modus erfordert Featureebene 10_0 oder höher sowie Gleitkommagenauigkeitspuffer. Dieser Modus unterstützt Gleitkommagenauigkeit sowie erweiterten Bereich, wie in der ICC v4.3-Spezifikation definiert. |
Der Farbverwaltungseffekt schlägt fehl, wenn die Anwendung einen Qualitätsmodus anfordert, der von der Hardware nicht unterstützt wird. Sie können die Featureebene ermitteln, wenn Sie D3D11CreateDeviceaufrufen. Sie können die Unterstützung von Gleitkommapuffern überprüfen, indem Sie ID2D1EffectContext::IsBufferPrecisionSupported mit dem Wert D2D1_BUFFER_PRECISION_32BPC_FLOATaufrufen.
Beispielcode
Ein Beispiel für diesen Effekt: Laden Sie das Direct2D-Effekt-Fotoanpassungsbeispielherunter, und lesen Sie Lektion 4 des Beispiels.
Anforderungen
Anforderung | Wert |
---|---|
Mindestens unterstützter Client | Windows 8 und Plattformupdate für Windows 7 [Desktop-Apps | Windows Store-Apps] |
Mindestens unterstützter Server | Windows 8 und Plattformupdate für Windows 7 [Desktop-Apps | Windows Store-Apps] |
Kopfball | d2d1effects.h |
Bibliothek | d2d1.lib, dxguid.lib |