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, et ainsi de suite.
Cet effet implémente tous les modes à l’aide de l’unité de fusion de l’unité de traitement graphique (GPU).
Le CLSID de cet effet est CLSID_D2D1Composite.
- Exemple d’image
- Propriétés d’effet
- Types de mode
- Exemple de code
- Configuration requise
- Rubriques connexes
Exemple d’image
L’image montre ici 2 rectangles arrondis de la même taille qui se chevauchent. Le rectangle bleu est la source et le rectangle rouge est la destination. Les images ont été composites avec le mode Source Over.
Voici un autre exemple utilisant le mode par défaut.
Avant l’image 1 |
---|
Avant l’image 2 |
After |
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 d’affichage 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 de la 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 source et de destination |
D2D1_COMPOSITE_MODE_DESTINATION_IN | O = SA * D | Intersection des bitmaps source et de destination |
D2D1_COMPOSITE_MODE_SOURCE_OUT | O = (1 - DA) * S | Région de l’image bitmap source |
D2D1_COMPOSITE_MODE_DESTINATION_OUT | O = (1 - SA) * D | Région de l’image bitmap de destination |
D2D1_COMPOSITE_MODE_SOURCE_ATOP | O = DA * S + (1 - SA) * D | Région de l’image bitmap de destination |
D2D1_COMPOSITE_MODE_DESTINATION_ATOP | O = (1 - DA) * S + SA * D | Région de l’image 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 l’image bitmap source |
D2D1_COMPOSITE_MODE_BOUNDED_SOURCE_COPY | O = S (uniquement là où la source existe) | Union des bitmaps source et de destination. La destination n’est pas remplacée lorsque 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 dont l’opacité est 1.0 ou 0.5.
Exemple de code
Pour obtenir un exemple de cet effet, téléchargez l’exemple de modes d’effet composite Direct2D.
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 |