API Canvas

องค์ประกอบ <canvas> กำหนดพื้นที่บิตแมพ์ในหน้าเว็บ HTML

API Canvas อนุญาตให้ JavaScript วาดกราฟิกบนแผ่นภาพ

API Canvas สามารถวาดรูปทรงกลม、เส้น、เส้นโค้ง、กล่อง、ข้อความและรูปภาพ รวมถึงสี、การหมุน、ความโปร่งและการปฏิบัติต่อพิกเซลต่างๆ

เพิ่ม Canvas ใน HTML

คุณสามารถใช้ตามแบบ <canvas> มาเพิ่มองค์ประกอบ canvas ในตำแหน่งที่ต้องการบนหน้าเว็บ HTML ได้:

ตัวอย่าง

<canvas id="myCanvas" width="300" height="150"></canvas>

ทดลองด้วยตัวเอง

วิธีการเข้าถึงองค์ประกอบ Canvas

คุณสามารถใช้วิธี HTML DOM หรือ getElementById() มาเข้าถึงองค์ประกอบ <canvas> ได้:

const myCanvas = document.getElementById("myCanvas");

ถ้าคุณต้องการวาดบนกราฟิต คุณจำเป็นต้องสร้าง 2D context object

const ctx = myCanvas.getContext("2d");

บันทึก

ตัวองค์ประกอบ HTML <canvas> มีฟีเจอร์วาดเส้น

คุณจำเป็นต้องใช้ JavaScript เพื่อวาดกราฟิตใดๆ

วิธี getContext() คืนค่าองค์ประกอบที่มีเครื่องมือวาด (วิธี)

วาดบนกราฟิต

หลังจากที่สร้าง 2D context object คุณจะสามารถวาดบนกราฟิตได้

วิธี fillRect() ด้านล่างวาดสี่เหลี่ยมผากดำ ที่มีจุดมุมบนขวาของมันอยู่ที่ตำแหน่ง 20,20 ขนาดกว้าง 150 พิกเซล สูง 100 พิกเซล

ตัวอย่าง

const myCanvas = document.getElementById("myCanvas");
const ctx = myCanvas.getContext("2d");
ctx.fillRect(20, 20, 150, 100);

ทดลองด้วยตัวเอง

ใช้สี

fillStyle ค่านี้ตั้งค่าสีที่ใช้สำหรับการทิ้งสีของวัตถุวาด

ตัวอย่าง

const myCanvas = document.getElementById("myCanvas");
const ctx = myCanvas.getContext("2d");
ctx.fillStyle = "red";
ctx.fillRect(20, 20, 150, 100);

ทดลองด้วยตัวเอง

คุณยังสามารถใช้วิธี document.createElement() เพื่อสร้างองค์ประกอบใหม่ของ <canvas> และเพิ่มองค์ประกอบนี้เข้าไปในหน้า HTML ที่มีอยู่:

ตัวอย่าง

const myCanvas = document.createElement("canvas");
document.body.appendChild(myCanvas);
const ctx = myCanvas.getContext("2d");
ctx.fillStyle = "red";
ctx.fillRect(20, 20, 150, 100);

ทดลองด้วยตัวเอง

เส้นทาง

วิธีที่ตั้งตารางในการวาดบนหน้ากราฟิตคือ:

  1. เริ่มเส้นทาง - beginPath()
  2. ย้ายไปยังจุด - moveTo()
  3. วาดในเส้นทาง - lineTo()
  4. วาดเส้นทาง - stroke()

ตัวอย่าง

const canvas = document.getElementById("myCanvas");
const ctx = canvas.getContext("2d");
ctx.beginPath();
ctx.moveTo(20, 20);
ctx.lineTo(20, 100);
ctx.lineTo(70, 100);
ctx.stroke();

ทดลองด้วยตัวเอง

สี รูปแบบและเงา

คุณสมบัติ คำอธิบาย
fillStyle ตั้งค่าหรือคืนค่าสีสำหรับการทิ้งสีในการวาด
strokeStyle ตั้งค่าหรือคืนค่าสีสำหรับเส้นทางสีหรือสีส่องแสงหรือตราสี
shadowColor ตั้งค่าหรือคืนค่าสีที่ใช้สำหรับเงา
shadowBlur ตั้งค่าหรือคืนค่าระดับที่เมาะคลุมเงา
shadowOffsetX ตั้งค่าหรือกู้ค่าระยะทางตั้งแต่เงาไปยังรูปที่มีเงา (ตามทิศทางน้ำเงิน)
shadowOffsetY ตั้งค่าหรือกู้ค่าระยะทางตั้งแต่เงาไปยังรูปที่มีเงา
วิธี คำอธิบาย
createLinearGradient() สร้างทางเทียมเส้นทาง (สำหรับสิ่งที่วาดบนแผ่นภาพ)
createPattern() ซ้ำสิ่งที่กำหนดในทิศทางที่กำหนด
createRadialGradient() สร้างทางเทียมทรงกลม/ทรงกลม (สำหรับสิ่งที่วาดบนแผ่นภาพ)
addColorStop() กำหนดสีและตำแหน่งหยุดของสีในเปรียบเทียบ

รูปแบบของสาย

คุณสมบัติ คำอธิบาย
lineCap ตั้งค่าหรือกู้ค่ารูปแบบของท้ายของเส้น
lineJoin ตั้งค่าหรือกู้ค่ารูปแบบของมุมที่เกิดขึ้นเมื่อเส้นทั้งสองบนเส้นตรงทั้งสองที่ทั้งสองเส้นขนาน
lineWidth ตั้งค่าหรือกู้ค่าความกว้างของเส้น
miterLimit ตั้งค่าหรือกู้ค่าความยาวที่สูงสุดของส่วนเศษ

สี่เหลี่ยม

วิธี คำอธิบาย
rect() สร้างสี่เหลี่ยม
fillRect() วาดสี่เหลี่ยมที่ปิดเส้น
strokeRect() วาดสี่เหลี่ยม (ไม่ปิดเส้น)
clearRect() ลบพิกเซลที่อยู่ในสี่เหลี่ยมของที่กำหนด

เส้นทาง

วิธี คำอธิบาย
fill() ปิดกราฟิก (เส้นทาง)
stroke() ในทางปฏิบัติเริ่มวาดเส้นทางที่กำหนด
beginPath() เริ่มเส้นทาง หรือกำหนดเส้นทางปัจจุบัน
moveTo() ย้ายเส้นทางไปยังจุดที่กำหนดบนแผ่นภาพ โดยไม่สร้างเส้น
closePath() สร้างเส้นทางจากจุดปัจจุบันกลับไปยังจุดเริ่มต้น
lineTo() เพิ่มจุดใหม่และสร้างเส้นจากจุดนี้ไปยังจุดที่กำหนดล่าสุดบนแผ่นภาพ
clip() ตัดขอบเขตของแผ่นภาพที่มีทรงทางและขนาดเท่าใดๆ
quadraticCurveTo() สร้างเส้นทางเบซเซอร์แบบสองจุด
bezierCurveTo() สร้างเส้นทางเบซเซอร์แบบสามจุด
arc() สร้างทางเวลาหรือเส้นทาง (ใช้สำหรับสร้างวงกลมหรือส่วนหนึ่งของวงกลม)
arcTo() สร้างทางเวลาหรือเส้นทางที่อยู่ระหว่างเส้นตรงทั้งสอง
isPointInPath() ถ้าจุดที่กำหนดอยู่ในเส้นทางปัจจุบัน ก็กลับค่าที่เป็น true และไม่ก็กลับค่าที่เป็น false

การเปลี่ยนแปลง

วิธี คำอธิบาย
scale() เพิ่มหรือลดขนาดของกราฟิกที่ปัจจุบัน
rotate() การหมุนกราฟิกที่ปัจจุบัน
translate() ทำการแปลงให้ตำแหน่ง (0,0) บนแผ่นภาพ
transform() แทนที่ตารางการเปลี่ยนแปลงที่ใช้กับการวาดในตอนนี้
setTransform() กำหนดการเปลี่ยนแปลงให้เป็นหน่วยตารางความเป็นส่วนหนึ่ง แล้วปฏิบัติ transform()

ข้อความ

คุณสมบัติ คำอธิบาย
font ตั้งค่าหรือกู้ค่าค่าที่ใช้กับรูปแบบตัวอักษรของข้อความ
textAlign ตั้งค่าหรือกู้ค่าการจัดลำดับของข้อความของของที่กำลังใช้อยู่
textBaseline ตั้งค่าหรือกลับคืนต้นตายของข้อความที่ใช้ในการวาดข้อความ
วิธี คำอธิบาย
fillText() วาดข้อความ 'ทาย' บน Canvas
strokeText() วาดข้อความบน Canvas (ไม่มีการทาย)
measureText() กลับคืนโอปเปอร์เรชั่นที่มีความกว้างของข้อความที่กำหนด

การวาดภาพ

วิธี คำอธิบาย
drawImage() วาดภาพบน Canvas ภาพหรือวิดีโอ

การปฏิบัติการพิกเซล

คุณสมบัติ คำอธิบาย
width กลับคืนความกว้างของ ImageData
height กลับคืนความสูงของ ImageData
data กลับคืนโอปเปอร์เรชั่นที่มี ImageData ที่กำหนด
วิธี คำอธิบาย
createImageData() สร้าง ImageData ที่ว่าง
getImageData() กลับคืน ImageData ที่ทำสำเนาของข้อมูลพิกเซลของสี่เหลี่ยมผืนผ้าที่กำหนดบน Canvas
putImageData() จัดให้ภาพข้อมูลรูปภาพ (จาก ImageData ที่กำหนด) กลับมาบน Canvas

การผสม

คุณสมบัติ คำอธิบาย
globalAlpha ตั้งค่าหรือกลับคืนค่า alpha หรือความโปร่งใสของการวาด
globalCompositeOperation ตั้งค่าหรือกลับคืนวิธีที่จะวาดภาพใหม่เข้าไปบนภาพที่มีอยู่แล้ว

อื่นๆ

วิธี คำอธิบาย
save() บันทึกสถานะของโครงสร้างปัจจุบัน
restore() กลับคืนสถานะและคุณสมบัติของทางแบบที่เคยบันทึกไว้
createEvent()
getContext()
toDataURL()

คุณสมบัติมาตรฐานและเหตุการณ์

canvas สามารถใช้คุณสมบัติมาตรฐานคุณสมบัติและเหตุการณ์

หน้าที่เกี่ยวข้อง

ความรู้ HTML:Canvas HTML5

ความรู้ HTML รูปภาพ:HTML Canvas ความรู้

คู่มือ HTML:HTML <canvas> แบตทิก