Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

canvas : shape + shadow

I need to draw a shape then add shadow but shadow is over the filled color I need it to be under it .. I can't explain the situation well so here is an example on jsfiddle

var canvas = document.getElementById("myCanvas");
var context = canvas.getContext("2d");
context.beginPath();
context.moveTo(170, 80);
context.bezierCurveTo(130, 100, 130, 150, 230, 150);
context.bezierCurveTo(250, 180, 320, 180, 340, 150);
context.bezierCurveTo(420, 150, 420, 120, 390, 100);
context.bezierCurveTo(430, 40, 370, 30, 340, 50);
context.bezierCurveTo(320, 5, 250, 20, 250, 50);
context.bezierCurveTo(200, 5, 150, 20, 170, 80);
context.closePath();
context.lineWidth = 5;     
context.fillStyle = "#8ED6FF";
context.strokeStyle = "#0000ff";     
context.shadowColor = "#000000";
context.shadowBlur    = 2;
context.shadowOffsetX = 5;
context.shadowOffsetY = 5;
context.fill();     
context.stroke();

http://jsfiddle.net/j8u8p/ thx

like image 425
Issam Zoli Avatar asked Feb 01 '26 06:02

Issam Zoli


1 Answers

http://jsfiddle.net/j8u8p/11/

Note: All I did was rearrange the context calls and add in a globalCompositeOperation

p.s. this looks nicer: http://jsfiddle.net/j8u8p/13/

p.p.s this is tweaked because you moaned about the gap: http://jsfiddle.net/j8u8p/16/

like image 68
Barrie Reader Avatar answered Feb 03 '26 23:02

Barrie Reader



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!