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);
مسار
من الطرق الشائعة لرسم على الورق:
- بدء المسار - beginPath()
- تحريك إلى نقطة - moveTo()
- رسم في المسار - lineTo()
- رسم مسار - 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() |
الصفحات ذات الصلة
دليل HTML:كanvas HTML5
دليل تعليمات HTML:دليل HTML Canvas
دليل مرجعي لـ HTML:العلامة <canvas> لـ HTML