--- title: CanvasRenderingContext2D.globalCompositeOperation slug: Web/API/CanvasRenderingContext2D/globalCompositeOperation translation_of: Web/API/CanvasRenderingContext2D/globalCompositeOperation ---
La propriété CanvasRenderingContext2D.globalCompositeOperation de l'API Canvas 2D définit le type d'opération de composition à appliquer lors du tracé de nouvelles formes.
Voir aussi Composition et découpe dans le Tutoriel canvas.
ctx.globalCompositeOperation = type;
type est de type {{jsxref("String")}} et permet de choisir quelle opération de composition ou de mode fondu utiliser.
{{EmbedLiveSample("Compositing_example", 750, 6900, "" ,"Web/API/Canvas_API/Tutorial/Compositing/Example")}}
Cet exemple utilise la propriété globalCompositeOperation pour dessiner deux rectangles qui s'excluent l'un l'autre quand ils se superposent.
<canvas id="canvas"></canvas>
const canvas = document.getElementById('canvas');
const ctx = canvas.getContext('2d');
ctx.globalCompositeOperation = 'xor';
ctx.fillStyle = 'blue';
ctx.fillRect(10, 10, 100, 100);
ctx.fillStyle = 'red';
ctx.fillRect(50, 50, 100, 100);
{{ EmbedLiveSample('Changing_the_composite_operation', 700, 180) }}
| Spécification | Etat | Commentaires |
|---|---|---|
| {{SpecName('HTML WHATWG', "scripting.html#dom-context-2d-globalcompositeoperation", "CanvasRenderingContext2D.globalCompositeOperation")}} | {{Spec2('HTML WHATWG')}} | |
| {{SpecName('Compositing')}} | {{Spec2('Compositing')}} |
{{Compat("api.CanvasRenderingContext2D.globalCompositeOperation")}}
ctx.setCompositeOperation() est implémentée à la place de cette propriété."plus-darker" et"darker" a été abandonné à partir de Chrome 48. Veuillez utiliser "darken" à la place."darker". Cependant, Firefox a abandonné le support de "darker" dans sa version 4 ({{bug(571532)}}). Voir aussi cet article de blog qui suggère l'utilisation de "difference" pour parvenir à un effet similaire à "darker".