0Pricing
HTML Academy · درس

النصوص والصور على Canvas

عرض سلاسل النصوص ورسم الصور على canvas

النصوص والصور على Canvas درس مجاني في HTML Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في HTML Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة HTML Academy 4 دروس في المجموع.

رسم النصوص

حدّد الخط باستخدام: ctx.font = "bold 24px sans-serif". ارسم باستخدام: ctx.fillText("Hello", x, y) أو ctx.strokeText("Hello", x, y). يمثل إحداثي y خط أساس النص — أضف ارتفاع الأجزاء الصاعدة فوقه لوضع النص بصورة صحيحة داخل مربع الإحاطة.

محاذاة النص

يتحكم ctx.textAlign في المحاذاة الأفقية: "left" (الافتراضي)، و"center"، و"right". ويتحكم ctx.textBaseline في المحاذاة الرأسية بالنسبة إلى y: "top"، و"middle"، و"alphabetic" (الافتراضي)، و"bottom". لتوسيط النص، اضبط القيمتين على "center" و"middle".

measureText لتنسيق التخطيط

يعيد ctx.measureText("text") كائنًا من النوع TextMetrics يتضمن العرض ومقاييس الخط. استخدمه لحساب مواضع النص ديناميكيًا — مثل توسيط النص داخل مربع، أو التفاف النص عند حد أقصى للعرض، أو محاذاة التسميات إلى اليمين بجوار نقاط البيانات.

التفاف النص

لا يوفر Canvas التفافًا مدمجًا للنص. نفّذه بنفسك: قِس عروض الكلمات، واجمعها حتى تتجاوز maxWidth، ثم انتقل إلى سطر جديد بفواصل lineHeight. تُعد هذه دالة مساعدة شائعة في مكتبات عرض Canvas.

رسم الصور

ترسم ctx.drawImage(image, dx, dy) عنصر HTMLImageElement أو HTMLCanvasElement أو HTMLVideoElement عند الموضع (dx, dy). حمّل الصورة أولًا، ثم ارسمها داخل معالج onload الخاص بها لضمان توفر البكسلات قبل الرسم.

const img = new Image();
img.onload = () => ctx.drawImage(img, 0, 0);
img.src = "photo.jpg";

تحجيم الصور

تُحجّم ctx.drawImage(image, dx, dy, dw, dh) الصورة لتلائم أبعاد dw × dh. لا يُحافَظ على نسبة العرض إلى الارتفاع تلقائيًا — احسب الأبعاد يدويًا. للحفاظ على النسبة: dw = img.width * scale; dh = img.height * scale.

اقتصاص الصور

تستخدم drawImage ذات الوسائط التسعة: ctx.drawImage(image, sx, sy, sw, sh, dx, dy, dw, dh). تقتص المستطيلات المصدر (sx, sy, sw, sh) جزءًا من الصورة، بينما تضع المستطيلات الوجهة (dx, dy, dw, dh) الجزء المقتص وتُحجّمه على اللوحة.

تنعيم الصور

يعطّل ctx.imageSmoothingEnabled = false الاستيفاء الثنائي الخطي عند تحجيم الصور. استخدمه مع الرسومات بالبكسل عندما تريد تحجيمًا واضحًا من دون تنعيم. اتركه مفعّلًا (وهو الإعداد الافتراضي) للصور الفوتوغرافية، إذ يبدو التحجيم السلس أفضل فيها.

Canvas كمصدر للصورة

مرّر لوحة Canvas كمصدر إلى drawImage لرسم لوحة على لوحة أخرى. يتيح ذلك الرسم خارج الشاشة: ارسم التركيبات المعقدة على لوحة مخفية، ثم ارسم تلك اللوحة على اللوحة المرئية بعملية واحدة في كل إطار.

globalAlpha والمزج

تطبّق ctx.globalAlpha (من 0 إلى 1) شفافية موحّدة على جميع عمليات الرسم اللاحقة. وتتحكم ctx.globalCompositeOperation في كيفية مزج الرسومات الجديدة مع البكسلات الموجودة: "source-over" (الافتراضي)، و"multiply"، و"screen"، و"destination-out" (للمسح)، وغير ذلك.

toDataURL للتصدير

تصدّر canvas.toDataURL("image/png") اللوحة بصيغة عنوان بيانات PNG بترميز base64. استخدمها لتنزيل يبدأه المستخدم: أنشئ مرساة، واضبط href على عنوان البيانات وdownload على اسم ملف، ثم انقر عليها برمجيًا.

اختبار الفهم

ما الذي يؤثر فيه ctx.textBaseline = "middle" عند رسم النص؟

الملخص

يستخدم عرض النص في Canvas كلًا من ctx.font وfillText/strokeText وtextAlign وtextBaseline لتحديد الموضع، وmeasureText لإجراء حسابات التخطيط. يتيح رسم الصور عبر drawImage تحجيم الصور واقتصاصها، بينما يتحكم globalAlpha وglobalCompositeOperation في المزج. وتصدّر toDataURL اللوحة لتنزيلها أو استخدامها لاحقًا.

الأسئلة الشائعة

هل درس «النصوص والصور على Canvas» مجاني؟

نعم — نص درس «النصوص والصور على Canvas» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة HTML Academy، انتقل إلى CoddyKit PRO. تتضمن دورة HTML Academy 4 دروس في المجموع.

ماذا ستتعلم في «النصوص والصور على Canvas»؟

عرض سلاسل النصوص ورسم الصور على canvas تتمرن على HTML Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ HTML Academy؟

لا تُشترط خبرة سابقة. HTML Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.

كم من الوقت يستغرق درس «النصوص والصور على Canvas»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس HTML Academy هذا؟

نعم. كل درس في HTML Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. إعداد Canvas وسياق 2D
  2. رسم المستطيلات والمسارات
  3. النصوص والصور على Canvas
  4. التحريك باستخدام requestAnimationFrame
← العودة إلى HTML Academy