Szukaj…


Rysuj za istniejącymi kształtami za pomocą „miejsca docelowego”

context.globalCompositeOperation = "destination-over"

Kompozycja „docelowa” umieszcza nowy rysunek pod istniejącymi rysunkami .

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

wprowadź opis zdjęcia tutaj

Usuń istniejące kształty za pomocą „miejsca docelowego”

context.globalCompositeOperation = "destination-out"

Kompozycja „docelowa” wykorzystuje nowe kształty do usuwania istniejących rysunków.

Nowy kształt nie jest narysowany - jest po prostu używany jako „foremka do ciastek” do usuwania istniejących pikseli.

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

wprowadź opis zdjęcia tutaj

Domyślne komponowanie: Nowe kształty są rysowane nad Istniejącymi kształtami

context.globalCompositeOperation = "source-over"

Kompozycja „source-over” [domyślnie] , umieszcza wszystkie nowe rysunki na istniejących rysunkach.

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

wprowadź opis zdjęcia tutaj

Przycinaj obrazy wewnątrz kształtów za pomocą „miejsca docelowego”

context.globalCompositeOperation = "destination-in"

Kompozycja „docelowa” przycina istniejące rysunki do nowego kształtu.

Uwaga: Każda część istniejącego rysunku, która nie mieści się w nowym rysunku, jest usuwana.

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

wprowadź opis zdjęcia tutaj

Przycinaj obrazy wewnątrz kształtów za pomocą „źródła”

context.globalCompositeOperation = "source-in";

kompozycja source-in klipuje nowe rysunki w istniejącym kształcie.

Uwaga: Każda część nowego rysunku, która wykracza poza istniejący rysunek, jest usuwana.

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

wprowadź opis zdjęcia tutaj

Cienie wewnętrzne z „source-atop”

context.globalCompositeOperation = 'source-atop'

Kompozycja source-atop nowy obraz do istniejącego kształtu.

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

wprowadź opis zdjęcia tutaj

Odwróć lub zaneguj obraz z „różnicą”

Renderuj biały prostokąt na obrazie za pomocą operacji złożonej

ctx.globalCompositeOperation = 'difference';

Wielkość efektu można kontrolować za pomocą ustawienia alfa

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

wprowadź opis zdjęcia tutaj

Czarno-biały z „kolorem”

Usuń kolor z obrazu za pomocą

ctx.globalCompositeOperation = 'color';

Wielkość efektu można kontrolować za pomocą ustawienia alfa

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

wprowadź opis zdjęcia tutaj

Zwiększ kontrast kolorów dzięki „nasyceniu”

Zwiększ poziom nasycenia obrazu za pomocą

ctx.globalCompositeOperation = 'saturation';

Wielkość efektu można kontrolować za pomocą ustawienia alfa lub nasycenia w nakładce wypełnienia

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

wprowadź opis zdjęcia tutaj

Sepia FX z „jaskrawością”

Stwórz kolorowy sepia FX za pomocą

ctx.globalCompositeOperation = 'luminosity';

W takim przypadku kolor sepii jest renderowany jako pierwszy obraz.

Wielkość efektu można kontrolować za pomocą ustawienia alfa lub nasycenia w nakładce wypełnienia

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

wprowadź opis zdjęcia tutaj

Zmień krycie za pomocą „globalAlpha”

context.globalAlpha=0.50

Możesz zmienić krycie nowych rysunków, ustawiając wartość globalAlpha na wartość od 0,00 (w pełni przezroczysta) do 1,00 (w pełni nieprzezroczysta).

Domyślna wartość globalAlpha to 1,00 (całkowicie nieprzezroczysta).

Na istniejące rysunki nie ma wpływu 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
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow