API Canvas

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

يُمكن لـ JavaScript رسم رسوم على اللوحة باستخدام 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");

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

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

ملاحظة

عنصر <canvas> في HTML لا يحتوي على وظائف الرسم.

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

يستعيد طريقة getContext() كائنًا يحتوي على أدوات الرسم (الطرق).

رسم على الورق

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

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

تحويل

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

نص

الخصائص الوصف
font تعيين أو استرداد خصائص الخط الحالية للمحتوى النصي.
textAlign تعيين أو استرداد طريقة التوجيه الحالية للمحتوى النصي.
textBaseline يُحدد أو يعيد الخط الأساسي الحالي لرسم النص.
الطريقة الوصف
fillText() يرسم النص المُعبىء على كanvas.
strokeText() يرسم النص على كanvas (بدون تعبئة).
measureText() يعيد object يحتوي على عرض النص المحدد.

رسم الصورة

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

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

الخصائص الوصف
width يعيد العرض لـ object ImageData.
height يعيد الارتفاع لـ object ImageData.
data يعيد object يحتوي على بيانات الصورة لـ ImageData المحدد.
الطريقة الوصف
createImageData() يُنشئ object ImageData جديداً فارغاً.
getImageData() يعيد object ImageData يحتوي على بيانات الصورة لـ ImageData المحدد.
putImageData() يضع بيانات الصورة (من object ImageData المحدد) مرة أخرى على كanvas.

الدمج

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

أخرى

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

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

يُدعم object canvas المعاييرالخصائصوالحدث.

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

دليل HTML:كanvas HTML5

دليل تعليمات HTML:دليل HTML Canvas

دليل مرجعي لـ HTML:العلامة <canvas> لـ HTML