Partager via


Effet de gestion des couleurs

Utilisez l’effet de gestion des couleurs pour transformer une image d’un profil de couleur ICC (International Color Consortium) en un autre. L’effet transforme l’image en fonction de la spécification ICC.

Le CLSID de cet effet est CLSID_D2D1ColorManagement.

Propriétés de l’effet

Nom complet et énumération d’index Description
SourceContext
D2D1_COLORMANAGEMENT_PROP_SOURCE_COLOR_CONTEXT
Informations sur l’espace de couleur source. Le type est ID2D1ColorContext.
La valeur par défaut est NULL.
SourceIntent
D2D1_COLORMANAGEMENT_PROP_SOURCE_RENDERING_INTENT
Intention de rendu ICC à utiliser. Le type est D2D1_COLORMANAGEMENT_RENDERING_INTENT.
La valeur par défaut est D2D1_COLORMANAGEMENT_RENDERING_INTENT_PERCEPTUAL.
DestinationContext
D2D1_COLORMANAGEMENT_PROP_DESTINATION_COLOR_CONTEXT
Informations sur l’espace de couleur de destination. Le type est ID2D1ColorContext.
La valeur par défaut est NULL.
DestinationIntent
D2D1_COLORMANAGEMENT_PROP_DESTINATION_RENDERING_INTENT
Intention de rendu ICC à utiliser. Le type est D2D1_COLORMANAGEMENT_RENDERING_INTENT.
La valeur par défaut est D2D1_COLORMANAGEMENT_RENDERING_INTENT_PERCEPTUAL.
AlphaMode
D2D1_COLORMANAGEMENT_PROP_ALPHA_MODE
Comment interpréter les données alpha contenues dans l’image d’entrée. Le type est D2D1_COLORMANAGEMENT_ALPHA_MODE.
La valeur par défaut est D2D1_COLORMANAGEMENT_ALPHA_MODE_PREMULTIPLIED.
Qualité
D2D1_COLORMANAGEMENT_PROP_QUALITY
Niveau de qualité de la transformation. Le type est D2D1_COLORMANAGEMENT_QUALITY.
La valeur par défaut est D2D1_COLORMANAGEMENT_QUALITY_NORMAL.

Modes d’intention de rendu

Énumération Description
D2D1_COLORMANAGEMENT_RENDERING_INTENT_PERCEPTUAL L’effet compresse ou étend la gamme de couleurs complète de l’image pour remplir la gamme de couleurs de l’appareil, afin de produire une sortie agréable qui préserve les détails de couleur, mais peut sacrifier la précision colorimétrique. Il est utile pour la reproduction générale de contenu réel tel que des photos.
D2D1_COLORMANAGEMENT_RENDERING_INTENT_RELATIVE_COLORIMETRIC L’effet ajuste toutes les couleurs qui se trouvent en dehors de la gamme que le périphérique de sortie peut restituer à la couleur la plus proche qui peut être rendue. Il ne conserve pas le point blanc.
D2D1_COLORMANAGEMENT_RENDERING_INTENT_SATURATION L’effet préserve la saturation des couleurs pures dans l’image au détriment possible de la teinte et de la légèreté. Il est utile pour les graphiques tels que les graphiques et les diagrammes.
D2D1_COLORMANAGEMENT_RENDERING_INTENT_ABSOLUTE_COLORIMETRIC L’effet ajuste toutes les couleurs qui se trouvent en dehors de la gamme que le périphérique de sortie peut restituer à la couleur la plus proche qui peut être rendue. L’effet ne modifie pas les couleurs de la gamme et conserve le point blanc.

Modes alpha d’image d’entrée

Énumération Description
D2D1_COLORMANAGEMENT_ALPHA_MODE_PREMULTIPLIED L’effet suppose que le mode alpha est prémultiplié.
D2D1_COLORMANAGEMENT_ALPHA_MODE_STRAIGHT L’effet suppose que le mode alpha est droit.

D2D1_GAMMA1_G2084 changements de comportement

Si votre application utilise l’espace D2D1_GAMMA1_G2084 ou l’une des valeurs d’énumération DXGI_COLOR_SPACE_TYPE qui utilisent l’espace de couleur SMPTE ST.2084 (Quantizer perceptuel), l’application a l’intention de fonctionner avec des données HDR.

Les API ID2D1DeviceContext5::CreateColorContextFromSimpleColorProfile et ID2D1DeviceContext5::CreateColorContextFromDxgiColorSpace ne comptent pas cela ; Au lieu de cela, le contenu HDR est mis à l’échelle pour s’adapter à la plage 0-1 pendant l’opération G2084 DeGamma.

Dans la pratique, le contenu encodé dans cet espace gamma utilise une référence WhiteLevel de 10 000 nits, qui serait normalement représenté dans CCCS par 10 000 / 80 = 125,00. Ainsi, pour mieux faciliter votre application, il est plus simple pour cette conversion gamma de mettre également à l’échelle la luminance d’un facteur de 125. À partir de Windows 10, version 1809 (10.0; Build 17763), le comportement de l’effet de gestion des couleurs est tel qu’il applique cette mise à l’échelle. Cela signifie que vous, en tant que développeur, n’avez pas besoin d’appliquer un deuxième effet d’ajustement de niveau blanc dans le pipeline.

Conformité avec la spécification ICC

L’effet de gestion des couleurs est conforme à la spécification ICC v4.3, avec les limitations suivantes :

  • L’effet prend en charge 1, 3 et 4 espaces de couleurs de canal.
  • L’effet ne prend pas en charge les profils ColorSpace ou Named Color.

Comportement du canal alpha

En général, l’effet définit alpha sur 1 (opaque) s’il n’y a pas de données alpha dans l’image source et les données alpha sont ignorées s’il n’y a pas de place dans l’image de destination. Le tableau décrit ici le comportement alpha.

Espace de couleurs source, format de pixel Espace de couleur de destination, format de pixel Comportement alpha
1 canal, format de pixel R
1 canal, format de pixel R (Aucune donnée alpha)
1 canal, format de pixel RVBA Les données alpha ont la valeur 1 (opaque)
3 canaux, format de pixel RVBA Les données alpha ont la valeur 1 (opaque)
4 canaux, format de pixel RVBA (Aucune donnée alpha)
1 canal, format de pixel RVBA
1 canal, format de pixel R Les données alpha sont ignorées
1 canal, format de pixel RVBA Les données alpha sont transmises via
3 canaux, format de pixel RVBA Les données alpha sont transmises via
4 canaux, format de pixel RVBA Les données alpha sont ignorées
3 canaux, format de pixel RVBA
1 canal, format de pixel R Les données alpha sont ignorées
1 canal, format de pixel RVBA Les données alpha sont transmises via
3 canaux, format de pixel RVBA Les données alpha sont transmises via
4 canaux, format de pixel RVBA Les données alpha sont ignorées
4 canaux, format de pixel RVBA
1 canal, format de pixel R (Aucune donnée alpha)
1 canal, format de pixel RVBA Les données alpha ont la valeur 1 (opaque)
3 canaux, format de pixel RVBA Les données alpha ont la valeur 1 (opaque)
4 canaux, format de pixel RVBA (Aucune donnée alpha)

Modes qualité

Mode Description
D2D1_COLORMANAGEMENT_QUALITY_PROOF Mode de qualité la plus basse. Ce mode nécessite le niveau de fonctionnalité 9_1 ou supérieur.
D2D1_COLORMANAGEMENT_QUALITY_NORMAL Mode qualité normale. Ce mode nécessite le niveau de fonctionnalité 9_1 ou supérieur.
D2D1_COLORMANAGEMENT_QUALITY_BEST Le mode de la meilleure qualité. Ce mode nécessite le niveau de fonctionnalité 10_0 ou supérieur, ainsi que des mémoires tampons de précision à virgule flottante. Ce mode prend en charge la précision à virgule flottante ainsi que la plage étendue, comme défini dans la spécification ICC v4.3.

L’effet de gestion des couleurs échoue lors du dessin si l’application demande un mode qualité qui n’est pas pris en charge par le matériel. Vous pouvez déterminer le niveau de fonctionnalité lorsque vous appelez D3D11CreateDevice. Vous pouvez case activée pour la prise en charge de la mémoire tampon à virgule flottante en appelant ID2D1EffectContext::IsBufferPrecisionSupported avec la valeur D2D1_BUFFER_PRECISION_32BPC_FLOAT.

Exemple de code

Pour obtenir un exemple de cet effet, téléchargez l’exemple d’ajustement photo des effets Direct2D et consultez la leçon 4 de l’exemple.

Spécifications

Condition requise Valeur
Client minimal pris en charge Windows 8 et mise à jour de plateforme pour Windows 7 [applications de bureau | Applications du Windows Store]
Serveur minimal pris en charge Windows 8 et mise à jour de plateforme pour Windows 7 [applications de bureau | Applications du Windows Store]
En-tête d2d1effects.h
Bibliothèque d2d1.lib, dxguid.lib