Javascript свойство globalCompositeOperation

Свойство globalCompositeOperation устанавливает/возвращает то, как исходное (новое) изображение нарисовано на целевом (существующем) изображении.

исходное изображение = рисунок, который вы планируете поместить на холсте.

целевое изображение = рисунок, который уже размещен на холсте.

Значение по умолчанию:source-over
JavaScript синтаксис:context.globalCompositeOperation="source-in";

Возможные значения

ЗначениеОписание
source-overЗначение по умолчанию. Исходное изображение накрывает целевое
source-atopИсходное изображение накладывается поверх целевого. При этом часть исходного изображения, которая выходит за границы целевого изображения, не отображается
source-inИсходное изображение отображается внутри целевого изображения. При этом отображается только та часть исходного изображения, которая находится в границах целевого изображения. Само целевое изображение становится прозрачным
source-outИсходное изображение отображается вне границ целевого изображения. При этом отображается только та часть исходного изображения, которая находится за пределами целевого изображения. Само целевое изображение становится прозрачным
destination-overЦелевое изображение накрывает исходное
destination-atopЦелевое изображение накладывается поверх исходного. При этом часть целевого изображения, которая выходит за границы исходного изображения, не отображается
destination-inЦелевое изображение отображается внутри исходного изображения. При этом отображается только та часть целевого изображения, которая находится в границах исходного изображения. Само исходное изображение становится прозрачным
destination-outЦелевое изображение отображается вне границ исходного изображения. При этом отображается только та часть целевого изображения, которая находится за пределами исходного изображения. Само исходное изображение становится прозрачным
lighterОтображает исходное изображение + целевое изображение
copyОтображает исходное изображение. Целевое изображение игнорируется
xorИсходное изображение комбинируется с целевым используя операцию исключающего ИЛИ

Пример использования

Пример №1

Нарисуем прямоугольники используя два разных значения globalCompositeOperation. Красный прямоугольник — целевое изображение. Синий прямоугольник — исходное изображение:

source-over
destination-over
Ваш браузер не поддерживает HTML5 тег canvas.

JavaScript:


var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");

ctx.fillStyle="red";
ctx.fillRect(20,20,75,50);
ctx.globalCompositeOperation="source-over";
ctx.fillStyle="blue"; 
ctx.fillRect(50,50,75,50); 

ctx.fillStyle="red";
ctx.fillRect(150,20,75,50);
ctx.globalCompositeOperation="destination-over";
ctx.fillStyle="blue"; 
ctx.fillRect(180,50,75,50);

Все значения свойства globalCompositeOperation: