Поиск…


Нарисуйте за существующими фигурами с помощью функции "destination-over"

context.globalCompositeOperation = "destination-over"

Композиция «Назначение поверх» помещает новый чертеж в существующие чертежи .

context.drawImage(rainy,0,0);
context.globalCompositeOperation='destination-over';  // sunny UNDER rainy
context.drawImage(sunny,0,0);

введите описание изображения здесь

Стирание существующих фигур с помощью функции "destination-out"

context.globalCompositeOperation = "destination-out"

Композиция «destination-out» использует новые формы для стирания существующих чертежей.

Новая форма на самом деле не нарисована - она ​​просто используется как «куки-резак» для стирания существующих пикселей.

context.drawImage(apple,0,0);
context.globalCompositeOperation = 'destination-out';   // bitemark erases
context.drawImage(bitemark,100,40);

введите описание изображения здесь

Компоновка по умолчанию: новые формы нарисованы поверх существующих фигур

context.globalCompositeOperation = "source-over"

компоновка «исходный текст» [по умолчанию] , размещает все новые чертежи поверх любых существующих чертежей.

context.globalCompositeOperation='source-over';  // the default
context.drawImage(background,0,0);
context.drawImage(parachuter,0,0);

введите описание изображения здесь

Закрепите изображения внутри фигур с помощью «места назначения»,

context.globalCompositeOperation = "destination-in"

«destination-in» компонует клипы существующих рисунков внутри новой формы.

Примечание. Любая часть существующего чертежа, которая выходит за пределы нового чертежа, удаляется.

context.drawImage(picture,0,0);
context.globalCompositeOperation='destination-in';  // picture clipped inside oval
context.drawImage(oval,0,0);

введите описание изображения здесь

Закрепите изображения внутри фигур с помощью «источника»,

context.globalCompositeOperation = "source-in";

source-in компоновке создает новые рисунки внутри существующей формы.

Примечание. Любая часть нового чертежа, выходящего за пределы существующего чертежа, удаляется.

context.drawImage(oval,0,0);
context.globalCompositeOperation='source-in';  // picture clipped inside oval
context.drawImage(picture,0,0);

введите описание изображения здесь

Внутренние тени с "source-atop"

context.globalCompositeOperation = 'source-atop'

source-atop compositing создает новое изображение внутри существующей формы.

// gold filled rect
ctx.fillStyle='gold';
ctx.fillRect(100,100,100,75);
// shadow
ctx.shadowColor='black';
ctx.shadowBlur=10;
// restrict new draw to cover existing pixels
ctx.globalCompositeOperation='source-atop';
// shadowed stroke
// "source-atop" clips off the undesired outer shadow
ctx.strokeRect(100,100,100,75);
ctx.strokeRect(100,100,100,75);

введите описание изображения здесь

Обратить или отменить изображение с помощью "разницы"

Отобразить белый прямоугольник над изображением с композитной операцией

ctx.globalCompositeOperation = 'difference';

Размер эффекта можно контролировать с помощью альфа-настройки

// Render the image
ctx.globalCompositeOperation='source-atop';
ctx.drawImage(image, 0, 0);

// set the composite operation
ctx.globalCompositeOperation='difference';
ctx.fillStyle = "white";
ctx.globalAlpha = alpha;  // alpha 0 = no effect 1 = full effect
ctx.fillRect(0, 0, image.width, image.height);

введите описание изображения здесь

Черно-белый с "цветным"

Удалить цвет изображения

ctx.globalCompositeOperation = 'color';

Размер эффекта можно контролировать с помощью альфа-настройки

// Render the image
ctx.globalCompositeOperation='source-atop';
ctx.drawImage(image, 0, 0);

// set the composite operation
ctx.globalCompositeOperation='color';
ctx.fillStyle = "white";
ctx.globalAlpha = alpha;  // alpha 0 = no effect 1 = full effect
ctx.fillRect(0, 0, image.width, image.height);

введите описание изображения здесь

Увеличьте цветовой контраст с "насыщенностью"

Увеличьте уровень насыщенности изображения с помощью

ctx.globalCompositeOperation = 'saturation';

Размер эффекта можно контролировать с помощью альфа-настройки или количества насыщения в наполнителе заполнения

// Render the image
ctx.globalCompositeOperation='source-atop';
ctx.drawImage(image, 0, 0);

// set the composite operation
ctx.globalCompositeOperation ='saturation';
ctx.fillStyle = "red";
ctx.globalAlpha = alpha;  // alpha 0 = no effect 1 = full effect
ctx.fillRect(0, 0, image.width, image.height);

введите описание изображения здесь

Sepia FX с "яркостью"

Создайте цветную сепию FX с

ctx.globalCompositeOperation = 'luminosity';

В этом случае цвет сепии визуализируется первым изображением.

Размер эффекта можно контролировать с помощью альфа-настройки или количества насыщения в наполнителе заполнения

// Render the image
ctx.globalCompositeOperation='source-atop';
ctx.fillStyle = "#F80";  // the color of the sepia FX
ctx.fillRect(0, 0, image.width, image.height);

// set the composite operation
ctx.globalCompositeOperation ='luminosity';

ctx.globalAlpha = alpha;  // alpha 0 = no effect 1 = full effect
ctx.drawImage(image, 0, 0);

введите описание изображения здесь

Измените непрозрачность с помощью "globalAlpha"

context.globalAlpha=0.50

Вы можете изменить непрозрачность новых чертежей, установив globalAlpha на значение от 0,00 (полностью прозрачное) до 1,00 (полностью непрозрачное).

Значение по умолчанию globalAlpha равно 1.00 (полностью непрозрачно).

globalAlpha не влияет на существующие чертежи.

// draw an opaque rectangle
context.fillRect(10,10,50,50);

// change alpha to 50% -- all new drawings will have 50% opacity
context.globalAlpha=0.50;

// draw a semi-transparent rectangle
context.fillRect(100,10,50,50);


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow