موضوع دالة DOM للشاشة

يحدد عنصر <canvas> منطقة الصورة الرقمية في صفحة HTML.

يُمكّن API Canvas من رسم الرسومات على اللوحة.

يستطيع API Canvas رسم الأشكال، الخطوط، الدوائر، المربعات، النصوص والصور، بالإضافة إلى الألوان، الدوران، الشفافية وأعمال البكسل الأخرى.

إضافة Canvas إلى HTML

يمكنك استخدام علامة <canvas> لدمج عنصر canvas في أي مكان في صفحة HTML:

مثال

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

جرب بنفسك

كيفية الوصول إلى عنصر Canvas

يمكنك استخدام طريقة DOM HTML getElementById() لتحديد عنصر <canvas>:

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

لرسم على الورق، يجب إنشاء object 2D context:

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

ملاحظة

لا يحتوي element HTML <canvas> على وظيفة الرسم.

يجب استخدام JavaScript لرسم أي شكل.

يُرجع method getContext() object يحتوي على أدوات الرسم (methods).

رسم على الورق

بعد إنشاء object 2D context، يمكنك رسم على الورق.

تُرسم في method 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);

جرب بنفسك

يمكنك أيضًا استخدام method 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() إذا كان النقطة المحددة في المسار الحالي، فإنه يعود إلى الحقيقة، وإلا يعود إلى الزائف.

تحويل

الطريقة وصف
scale() تكبير أو تصغير الشكل الحالي.
rotate() تدوير الشكل الحالي.
translate() إعادة توجيه موقع (0,0) على لوحة الرسم.
transform() استبدال مصفوفة التحويل الحالية لل رسم.
setTransform() استعادة التحويل الحالي إلى مصفوفة وحدة. ثم تشغيل transform().

نص

خصائص وصف
font تعيين أو استرداد خصائص الخط الحالية لتوقيع المحتوى النصي.
textAlign تعيين أو استرداد طريقة التشذيب الحالية لتوقيع المحتوى النصي.
textBaseline تعيين أو العودة إلى الأساس الحالي للنص عند الرسم.
الطريقة وصف
fillText() رسم نص "ملون" على كanvas.
strokeText() رسم النص على كanvas (بدون تعبئة).
measureText() العودة إلى عمود البيانات الذي يحتوي على عرض النص المحدد.

رسم الصورة

الطريقة وصف
drawImage() رسم الصورة على كanvas أو كanvas أو الفيديو.

عمليات معالجة البكسل

خصائص وصف
عرض العودة إلى عرض عمود البيانات ImageData.
ارتفاع العودة إلى ارتفاع عمود البيانات ImageData.
بيانات العودة إلى عمود البيانات الذي يحتوي على بيانات الصورة المحددة.
الطريقة وصف
createImageData() إنشاء عمود بيانات ImageData جديداً.
getImageData() العودة إلى عمود البيانات ImageData، الذي يحتوي على بيانات الصورة المحددة.
putImageData() وضع بيانات الصورة (من ImageData المحدد) مرة أخرى على كanvas.

الدمج

خصائص وصف
globalAlpha تعيين أو العودة إلى قيمة الشفافية الحالية للرسم.
globalCompositeOperation تعيين أو العودة إلى كيفية رسم الصورة الجديدة على الصورة الحالية.

أخرى

الطريقة وصف
save() حفظ حالة السياق الحالية.
restore() استعادة الحالة والخصائص المسبقة للمنحنى.
createEvent()
getContext()
toDataURL()

خصائص المعايير والحدث

يتم دعم معايير canvas بشكل متوازيخصائصوالحدث.

الصفحات ذات الصلة

دليل HTML:كanvas HTML5

دليل صور HTML:دليل كanvas HTML

دليل HTML:علامة <canvas> في HTML