Sök…


Rita bakom befintliga former med "destination-over"

context.globalCompositeOperation = "destination-over"

"destination-over" -kompositionering placerar ny ritning under befintliga ritningar .

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

ange bildbeskrivning här

Radera befintliga former med "destination-out"

context.globalCompositeOperation = "destination-out"

"destination-out" -kompositionering använder nya former för att radera befintliga ritningar.

Den nya formen ritas faktiskt inte - den används bara som en "cookie-cutter" för att radera befintliga pixlar.

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

ange bildbeskrivning här

Standardkomposition: Nya former ritas över befintliga former

context.globalCompositeOperation = "source-over"

"source-over" -komposition [standard] , placerar alla nya ritningar över alla befintliga ritningar.

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

ange bildbeskrivning här

Klipp bilder inuti former med "destination-in"

context.globalCompositeOperation = "destination-in"

"destination-in" -kompositionering klipp befintliga ritningar i en ny form.

Obs: Alla delar av den befintliga ritningen som faller utanför den nya ritningen raderas.

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

ange bildbeskrivning här

Klipp bilder inuti former med "source-in"

context.globalCompositeOperation = "source-in";

source-in compositing klipp nya ritningar i en befintlig form.

Obs: Alla delar av den nya ritningen som faller utanför den befintliga ritningen raderas.

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

ange bildbeskrivning här

Inre skuggor med "source-atop"

context.globalCompositeOperation = 'source-atop'

source-atop compositing klipp ny bild i en befintlig form.

// 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);

ange bildbeskrivning här

Invertera eller negera bild med "skillnad"

Ge en vit rektangel över en bild med den sammansatta operationen

ctx.globalCompositeOperation = 'difference';

Mängden effekt kan kontrolleras med alfainställningen

// 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);

ange bildbeskrivning här

Svartvitt med "färg"

Ta bort färg från en bild via

ctx.globalCompositeOperation = 'color';

Mängden effekt kan kontrolleras med alfainställningen

// 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);

ange bildbeskrivning här

Öka färgkontrasten med "mättnad"

Öka bildens mättnadsnivå med

ctx.globalCompositeOperation = 'saturation';

Storleken på effekten kan kontrolleras med alfainställningen eller mängden mättnad i fyllningsöverlagringen

// 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);

ange bildbeskrivning här

Sepia FX med "ljusstyrka"

Skapa en färgad sepia FX med

ctx.globalCompositeOperation = 'luminosity';

I detta fall återges sepiafärgen först bilden.

Storleken på effekten kan kontrolleras med alfainställningen eller mängden mättnad i fyllningsöverlagringen

// 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);

ange bildbeskrivning här

Ändra opacitet med "globalAlpha"

context.globalAlpha=0.50

Du kan ändra opaciteten för nya ritningar genom att ställa globalAlpha till ett värde mellan 0,00 (helt transparent) och 1,00 (helt ogenomskinligt).

Standardinställningen globalAlpha är 1,00 (helt ogenomskinlig).

Befintliga ritningar påverkas inte av 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
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow