เพื่อที่จะเติมสีให้กับรูปทรงต่างๆใน HTML5 Canvas เราจะใช้เมธอด fillStyle โดยจะใช้เป็นข้อความระบุสี เช่น blue หรือใช้รูปแบบของค่า hex เช่น #0000FF, หรือใช้เป็นแบบค่า RGB เช่น rgb(0,0,255) ในการกำหนดค่าก็ได้ครับ จากนั้นเติมสีให้รูปทรงโดยใช้เมธอด fill(). หากไม่ได้ระบุค่าใดให้กับรูปทรงแล้วละก็จะเป็น สีดำโดยปริยายครับ.
ตัวอย่าง : แทคที่ใช้
ตัวอย่าง : การการระบายสีแบบทั่วไป
var canvas = document.getElementById('myCanvas'); var context = canvas.getContext('2d'); // begin custom shape 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); // complete custom shape context.closePath(); context.lineWidth = 5; // ความหนาของเส้น context.fillStyle = '#8ED6FF'; // ระบุสี context.fill(); // เติมสี context.strokeStyle = 'blue'; // สีเส้น context.stroke();
ผลลัพธ์ที่ได้คือ
การระบายสีแบบ linear gradient
การระบายสีรูปทรงแบบ linear gradient ใน HTML5 Canvas เราใช้เมธอด createLinearGradient() ครับ. createLinearGradient(startX, startY, endX, endY)โดย createLinearGradient เป็นการสร้างพื้นที่ในการ ระบาย Linear Gradient ซึ่งตัว startX, startY เป็นจุดเริ่มต้น และ endX, endY เป็นจุดสิ้นสุดของ Linear Gradient และใช้ addColorStop(offset, color) ในการใส่สีที่จะระบายโดยมี offset ใช้ระบุ offset ที่จะระบาย มีค่าระหว่าง 0 หรือ 1 เมื่อค่า 0 คือ จุดเริ่มต้นและ 1 คือจุดสิ้นสุด ส่วน color เป็นสีที่ใช้ระบาย.
ตัวอย่าง : การระบายสีแบบ linear gradient
var canvas = document.getElementById('myCanvas'); var context = canvas.getContext('2d'); context.rect(0, 0, canvas.width, canvas.height); // add linear gradient var grd = context.createLinearGradient(0, 0, canvas.width, canvas.height); // ขนาดพื้นที่วาด จุเริ่มต้น x,y และจุดสิ้นสุด x,y // light blue grd.addColorStop(0, '#8ED6FF'); // เริ่มระบายสี // dark blue grd.addColorStop(1, '#004CB3'); // สิ้นสุดการระบายสี context.fillStyle = grd; context.fill();
ผลลัพธ์ที่ได้คือ
การระบายสี Radial Gradient ใน HTML5 Canvas เราจะใช้ createRadialGradient() และใช้เมธอด addColorStop() ในการสร้าง Radial Gradient ซึ่งมีรูปแบบดังนี้ createRadialGradient(startX, startY, startRadius, endX, endY, endRadius) โดย createRadialGradient เป็นการสร้างพื่นมี่ในการระบาย Radial Gradient โดยที่ startX, startY เป็นจุดเริ่มต้น startRadius เป็นมุมเริ่มต้น และ endX, endY เป็นจุดสิ้นสุด endRadius เป็นมุมสิ้นสุด ของ Radial Gradient สำหรับ addColorStop(offset, color) ใช้ในการใส่สีที่ จะ ระบาย โดยมี offset ใช้ระบุ offset ที่จะระบาย มีค่าระหว่าง 0 หรือ 1 เมื่อค่า 0 คือ จุดเริ่มต้นและ 1 คือจุดสิ้นสุด ส่วน color เป็นสีที่ใช้ระบาย.
var canvas = document.getElementById('myCanvas'); var context = canvas.getContext('2d'); context.rect(0, 0, canvas.width, canvas.height); // create radial gradient var grd = context.createRadialGradient(238, 50, 10, 238, 50, 300); // light blue grd.addColorStop(0, '#8ED6FF'); // dark blue grd.addColorStop(1, '#004CB3'); context.fillStyle = grd; context.fill();
ผลลัพธ์ที่ได้คือ
การระบายแบบ pattern ใน HTML5 Canvas เราจะใช้เมธอด createPattern() ในการสร้าง Pattern ซึ่งมีรูปแบบดังนี้ createPattern(imageObj, repeatOption) โดย imageObj เป็น Image Object ทีจะใช้เป็น Pattern และ repeatOption รูปแบบการระบาย Pattern ลงไป ซึ่งมีค่าที่เป็นไปได้ดังนี้ repeat, repeat-x, repeat-y และ no-repeat หากไม่ได้ระบุค่าใดๆให้แล้วละก็จะเป็น repeat โดยปริยายครับ.
var canvas = document.getElementById('myCanvas'); var context = canvas.getContext('2d'); var imageObj = new Image(); imageObj.onload = function() { var pattern = context.createPattern(imageObj, 'repeat'); // กำหนด pattern context.rect(0, 0, canvas.width, canvas.height); // สร้างสี่เหลี่ยม context.fillStyle = pattern; // กำหนด pattern ให้ fillStyle context.fill(); // ระบาย pattern }; imageObj.src = 'http://www.html5canvastutorials.com/demos/assets/wood-pattern.png';
ผลลัพธ์ที่ได้คือ
อ้างอิง : ที่นี่
0 comments:
Post a Comment