Partager via


Effet composite

Utilisez l’effet composite pour combiner 2 images ou plus. Cet effet a 13 modes composites différents. T

L’effet composite accepte 2 entrées ou plus. Lorsque vous spécifiez 2 images, la destination est la première entrée (index 0) et la source est la deuxième entrée (index 1). Si vous spécifiez plus de 2 entrées, les images sont composites en commençant par la première entrée et la seconde, etc.

Cet effet implémente tous les modes à l’aide de l’unité de fusion de l’unité de traitement graphique (GPU).

Le CLSID pour cet effet est CLSID_D2D1Composite.

Exemple d’image

L’image montre ici 2 rectangles arrondis de la même taille que celle qui se chevauche. Le rectangle bleu est la source et le rectangle rouge est la destination. Les images ont été composites avec le mode Source Over.

un exemple d’image montrant 2 rectangles arrondis de la même taille qui se chevauchent à l’aide de la source sur le mode.

Voici un autre exemple utilisant le mode par défaut.

Avant l’image 1
la première image source avant l’effet.
Avant l’image 2
la deuxième image avant l’effet.
Après
l’image après la transformation.
ComPtr<ID2D1Effect> compositeEffect;
m_d2dContext->CreateEffect(CLSID_D2D1Composite, &compositeEffect);

compositeEffect->SetInput(0, bitmap);
compositeEffect->SetInput(1, bitmapTwo);

m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(compositeEffect.Get());
m_d2dContext->EndDraw();

Propriétés d’effet

Nom complet et énumération d’index Type et valeur par défaut Description
Mode
D2D1_COMPOSITE_PROP_MODE
D2D1_COMPOSITE_MODE
D2D1_COMPOSITE_MODE_SOURCE_OVER
Mode utilisé pour l’effet.

Types de mode

Le tableau ci-dessous montre les modes de cet effet. Les équations répertoriées dans le tableau utilisent les éléments suivants :

  • O = Sortie
  • S = Source
  • SA = Source Alpha
  • D = Destination
  • DA = Destination Alpha
Énumération Équation Taille bitmap de sortie
D2D1_COMPOSITE_MODE_SOURCE_OVER O = S + (1 SA) * D Union des bitmaps sources et de destination
D2D1_COMPOSITE_MODE_DESTINATION_OVER O = (1 DA) * S + D Union des bitmaps sources et de destination
D2D1_COMPOSITE_MODE_SOURCE_IN O = DA * S Intersection des bitmaps sources et de destination
D2D1_COMPOSITE_MODE_DESTINATION_IN O = SA * D Intersection des bitmaps sources et de destination
D2D1_COMPOSITE_MODE_SOURCE_OUT O = (1 - DA) * S Région de la bitmap source
D2D1_COMPOSITE_MODE_DESTINATION_OUT O = (1 - SA) * D Région de la bitmap de destination
D2D1_COMPOSITE_MODE_SOURCE_ATOP O = DA * S + (1 - SA) * D Région de la bitmap de destination
D2D1_COMPOSITE_MODE_DESTINATION_ATOP O = (1 - DA) * S + SA * D Région de la bitmap source
D2D1_COMPOSITE_MODE_XOR O = (1 - DA) * S + (1 - SA) * D Union des bitmaps sources et de destination
D2D1_COMPOSITE_MODE_PLUS O = S + D Union des bitmaps sources et de destination
D2D1_COMPOSITE_MODE_SOURCE_COPY O = S Région de la bitmap source
D2D1_COMPOSITE_MODE_BOUNDED_SOURCE_COPY O = S (uniquement où existe la source) Union des bitmaps source et de destination. La destination n’est pas remplacée où la source n’existe pas.
D2D1_COMPOSITE_MODE_MASK_INVERT O = (1 D) * S + (1 SA) * D Union des bitmaps source et de destination. Les valeurs alpha sont inchangées.

La figure ci-dessous montre un exemple de chacun des modes avec des images qui ont une opacité de 1,0 ou 0,5.

un exemple d’image de chacun des modes dont l’opacité est définie sur 1.0 ou 0.5.

Exemple de code

Pour obtenir un exemple de cet effet, téléchargez l’exemple modes d’effet composite Direct2D.

Exigences

Exigence Valeur
Client minimum pris en charge Windows 8 et Mise à jour de plateforme pour Windows 7 [applications de bureau | Applications du Windows Store]
Serveur minimum 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

ID2D1Effect