A canvas globalAlpha tulajdonság beállítja rajzunk aktuális alfa vagy átláthatósági értékét.
A canvas globalCompositeOperation tulajdonságaival beállíthatjuk, meglévő rajzunkon vagy képen, hogy jelenjen meg, a következő rajz vagy kép
A canvas globalAlpha értékét, számokkal kell meghatározni. Értéke: 0.0 (teljesen átlátszó) és 1.0 (nincs átlátszóság) között legyen,
alapértelmezett értéke: 1.0 (Nincs átlátszódág.)
A canvas globalCompositeOperation értékeinek, meghatározásokat kel megadnunk, melyeket a lenti táblázatban láthatunk,
alapértelmezett értéke: source-over
Property | Leírás |
---|---|
globalAlpha | Beállítja őt követő rajz/rajzok aktuális alfa vagy átlátszósági értékét. Átlátszósági rajzokat követöen, vissza kell állítani globalAlpha = 1.0-ra. globalAlpha = 0.0 - akkor teljesen átlátszó. globalAlpha = 1.0 - akkor nincs átlátszóság. |
globalCompositeOperation | Beállítja, hogyan készítsen új rajzot vagy képet, egy meglévő rajzra vagy képre. Példa: fillStyle = "blue"; fillRect(20, 20, 60, 50); globalCompositeOperation = "source-over"; arc(75,65,30,0,2*Math.PI); fillStyle = "#f00"; fill(); |
Értékei | Leírás | Bemutató |
---|---|---|
source-over | Alapértelmezett. Megjeleníti célképen, a forrásképet. |
|
source-atop | Megjeleníti célképen a forrásképet úgy, hogy a célképen kívül lévő forráskép részei, nem jelennek meg. |
|
source-in | Megjeleníti forrásképet úgy, hogy csak a célképen belüli része lesz látható, és a célkép, átlátszó lesz. |
|
source-out | Megjeleníti forrásképet úgy, hogy csak a célképen kivüli része lesz látható, és a célkép, átlátszó lesz. |
|
destination-over | Megjeleníti célképet a forrásképen. |
|
destination-atop | Megjeleníti célképet a forrásképen úgy, hogy a forrásképen kívül eső célkép, nem jelenik meg. |
|
destination-in | Megjeleníti célképet a forrásképen úgy, hogy csak a forrásképen belül lévő része lesz látható, és a forráskép átlátszó lesz. |
|
destination-out | Megjeleníti célképet a forrásképen úgy, hogy csak a forrásképen kivül lévő része lesz látható, és a forráskép átlátszó lesz. |
|
lighter | Megjeleníti a forrásképet + a célképet. |
|
copy | Megjeleníti forrásképet úgy, hogy a célképet figyelmen kívül hagyja. |
|
xor | A képek azon része lesz átlátszó, mely a másik kép területén is, jelen van. OR vagy A képek azon része lesz látható, mely a másik kép területén kívül van. |
1. Rajzolunk egy piros négyszöget.
2. Átlátszóságot globalAlpha=0,2 értékre állítjuk.
3. Rajzolunk egy kék, és egy zöld négyszöget.
4. Átlátszóságot alaphelyzetbe állítjuk.
5. Rajzolunk egy sárga négyszöget.
var c = document.getElementById("globalAlpha"); var ctx = c.getContext("2d"); ctx.fillStyle = "red"; ctx.fillRect(20, 20, 75, 50); // Állítsuk be az átlátszóságot. ctx.globalAlpha = 0.2; ctx.fillStyle = "blue"; ctx.fillRect(50, 50, 75, 50); ctx.fillStyle = "green"; ctx.fillRect(80, 80, 75, 50); // Állítsuk alaphelyzetbe az átlátszóságot. ctx.globalAlpha = 1.0; ctx.fillStyle = "yellow"; ctx.fillRect(110, 110, 75, 50); |
1. Példa:
Alakzatokat rajzolunk, két különböző globalCompositeOperation érték segítségével.
var c = document.getElementById("globalComposite"); 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); |
2. Példa:
Kék színű alakzatok felülre, piros színű alakzatok alulra kerülnek.
Majd elhelyezünk egy zöld színű alakzatot, melynek csak azon részei lesznek láthatók, melyek bármely meglévő alakzat
területére esik.
var c = document.getElementById("globalComposite"); var ctx = c.getContext("2d"); ctx.fillStyle = "blue"; ctx.fillRect(40, 20, 75, 50); ctx.globalCompositeOperation = "destination-over"; ctx.arc(85,85,50,0,2*Math.PI); ctx.fillStyle = "red"; ctx.fill(); ctx.fillStyle = "red"; ctx.fillRect(100, 120, 75, 50); ctx.globalCompositeOperation = "source-over"; ctx.fillStyle = "blue"; ctx.fillRect(70, 100, 75, 50); ctx.closePath(); ctx.beginPath() ctx.globalCompositeOperation = "source-atop"; ctx.arc(155,90,60,0,2*Math.PI); ctx.fillStyle = "green"; ctx.fill(); |