0Pricing
JavaScript Academy · บทเรียน

การทำงานกับรูปภาพและข้อความ

วาดรูปภาพและข้อความที่จัดสไตล์ลงบน Canvas

การทำงานกับรูปภาพและข้อความ เป็นบทเรียน JavaScript Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน JavaScript Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส JavaScript Academy มีบทเรียนทั้งหมด 4 บทเรียน

การโหลดรูปภาพ

canvas วาดภาพจาก HTMLImageElement สร้าง Image กำหนดค่า src แล้วรอ onload ก่อนวาด เนื่องจากพิกเซลจะยังไม่พร้อมใช้งานจนกว่าจะถึงเวลานั้น

const img = new Image();
img.onload = () => ctx.drawImage(img, 0, 0);
img.src = "/logo.png";

พื้นฐาน drawImage

drawImage(img, dx, dy) วาดรูปภาพที่ตำแหน่งที่กำหนด โดยใช้ขนาดตามธรรมชาติของรูปภาพ

img.onload = () => {
  ctx.drawImage(img, 20, 20);
};

การปรับขนาดรูปภาพ

รูปแบบที่มีอาร์กิวเมนต์ 5 ตัว drawImage(img, dx, dy, dWidth, dHeight) จะปรับขนาดรูปภาพให้พอดีกับกรอบเป้าหมาย

ctx.drawImage(img, 0, 0, 160, 90); // fit into 160x90

การตัดภาพด้วยสี่เหลี่ยมต้นฉบับ

รูปแบบที่มีอาร์กิวเมนต์ 9 ตัวช่วยให้คุณตัดภาพได้: drawImage(img, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight) สี่ค่าตัวแรกอธิบายส่วนที่เลือกจากภาพต้นฉบับ

ctx.drawImage(img, 0, 0, 50, 50, 10, 10, 100, 100); // crop 50x50 → scale to 100x100

การวาดข้อความแบบเติมสี

fillText(text, x, y) วาดข้อความโดยใช้ fillStyle โดยค่าเริ่มต้น y คือเส้นฐานของข้อความ

ctx.fillStyle = "#2c3e50";
ctx.font = "24px sans-serif";
ctx.fillText("Hello Canvas", 20, 50);

ข้อความแบบมีเส้นขอบ

strokeText(text, x, y) วาดเฉพาะเส้นขอบโดยใช้ strokeStyle และ lineWidth

ctx.font = "40px bold serif";
ctx.lineWidth = 2;
ctx.strokeStyle = "navy";
ctx.strokeText("Outline", 20, 80);

คุณสมบัติแบบอักษร

font ใช้รูปแบบย่อของ CSS: [style] [weight] size family โดยต้องระบุขนาดและตระกูลแบบอักษร

ctx.font = "italic bold 28px Georgia, serif";

การจัดแนวข้อความ

textAlign (จุดเริ่มต้น/จุดสิ้นสุด/ซ้าย/ขวา/กึ่งกลาง) กำหนดจุดยึดในแนวนอน ส่วน textBaseline (ด้านบน/กึ่งกลาง/แนวตัวอักษร/ด้านล่าง) กำหนดจุดยึดในแนวตั้งรอบจุดที่ระบุ

ctx.textAlign = "center";
ctx.textBaseline = "middle";
ctx.fillText("Centered", canvas.width / 2, canvas.height / 2);

การวัดข้อความ

measureText(text) ส่งคืนออบเจ็กต์ TextMetrics ค่า width บอกว่าข้อความจะแสดงกว้างเท่าใด ซึ่งจำเป็นต่อการจัดวางและการตัดบรรทัด

const m = ctx.measureText("How wide?");
console.log(m.width); // pixels

การตัดบรรทัดอย่างง่าย

ใช้ measureText ร่วมกับลูปเพื่อตัดสตริงยาวออกเป็นหลายบรรทัด

function wrap(ctx, text, x, y, maxW, lh) {
  let line = "";
  for (const word of text.split(" ")) {
    const test = line + word + " ";
    if (ctx.measureText(test).width > maxW && line) {
      ctx.fillText(line, x, y);
      line = word + " ";
      y += lh;
    } else {
      line = test;
    }
  }
  ctx.fillText(line, x, y);
}

เงาเพื่อเพิ่มมิติ

คุณสมบัติเงาใช้ได้กับรูปร่าง รูปภาพ และข้อความ ได้แก่ shadowColor, shadowBlur และ shadowOffsetX/Y

ctx.shadowColor = "rgba(0,0,0,0.4)";
ctx.shadowBlur = 8;
ctx.shadowOffsetX = 3;
ctx.shadowOffsetY = 3;
ctx.fillText("With shadow", 20, 60);

ตรวจสอบความเข้าใจ

ตรวจสอบความเข้าใจเกี่ยวกับการวาดรูปภาพและข้อความ

สรุป: รูปภาพและข้อความ

คุณได้เรียนรู้วิธีโหลดรูปภาพและวาดรูปภาพด้วยการปรับขนาดและการตัดภาพผ่าน drawImage แสดงข้อความด้วย fillText/strokeText ตั้งค่า font จัดแนวข้อความ วัดความกว้างด้วย measureText และเพิ่มเงา ถัดไปคือแอนิเมชัน

คำถามที่พบบ่อย

บทเรียน “การทำงานกับรูปภาพและข้อความ” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การทำงานกับรูปภาพและข้อความ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส JavaScript Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส JavaScript Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การทำงานกับรูปภาพและข้อความ”

วาดรูปภาพและข้อความที่จัดสไตล์ลงบน Canvas คุณปฏิบัติ JavaScript Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน JavaScript Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน JavaScript Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “การทำงานกับรูปภาพและข้อความ” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน JavaScript Academy นี้ได้ไหม

ได้ บทเรียน JavaScript Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การตั้งค่าบริบท Canvas
  2. การวาดรูปร่างและเส้นทาง
  3. การทำงานกับรูปภาพและข้อความ
  4. แอนิเมชันด้วย requestAnimationFrame
← กลับไปที่ JavaScript Academy