API Canvas

عنصر <canvas> یک منطقه رزمات در صفحه HTML را تعریف می‌کند.

API Canvas اجازه می‌دهد JavaScript در کانواس (canvas) تصاویر ترسیم کند.

API Canvas می‌تواند شکل‌ها، خطوط، منحنی‌ها، مربع‌ها، متن و تصاویر را ترسیم کند، همچنین رنگ‌ها، چرخش، شفافیت و سایر عملیات‌های پیکسلی.

افزودن Canvas به HTML

شما می‌توانید از تگ <canvas> در هر مکان از صفحه HTML برای افزودن عنصر canvas استفاده کنید:

مثال

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

به طور شخصی امتحان کنید

چگونه به عنصر Canvas دسترسی پیدا کنید

شما می‌توانید از روش HTML DOM getElementById() برای دسترسی به عنصر <canvas> استفاده کنید:

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

برای طراحی در کاغذ، باید object زمینه 2D ایجاد کنید:

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

نکته

عنصر HTML <canvas> خود به هیچ عنوان قابلیت طراحی ندارد.

شما باید از JavaScript برای کشیدن هر نوع نمودار استفاده کنید.

روش getContext() یک object با ابزارهای طراحی (روش‌ها) را برمی‌گرداند.

در کاغذ طراحی کردن

پس از ایجاد 2D object زمینه، شما می‌توانید در کاغذ طراحی کنید.

در روش 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() اگر نقطه مشخص شده در مسیر فعلی باشد، true بازگردانید، در غیر این صورت false.

تغییر

روش توضیح
scale() افزایش یا کاهش اندازه شکل فعلی.
rotate() شکل فعلی را بچرخانید.
translate() موقعیت (0,0) روی صفحه را دوباره نقشه‌برداری کنید.
transform() ماتریس تغییرات فعلی نقاشی را جایگزین کنید.
setTransform() تغییرات فعلی را به ماتریس یکپارچه بازگردانید. سپس اجرا کنید transform().

متن

ویژگی توضیح
font تنظیم یا بازگشت ویژگی‌های فونت محتوای متن فعلی.
textAlign تنظیم یا بازگشت روش چینش محتوای متن فعلی.
textBaseline تنظیم یا بازگرداندن خط پایه فعلی برای نقاشی متن.
روش توضیح
fillText() متن پر شده را روی کانواس می‌کشد.
strokeText() تنها با بدون پر کردن متن را روی کانواس می‌کشد.
measureText() obieکتی که عرض متن مشخص شده را بازمی‌گرداند.

نقاشی تصویر

روش توضیح
drawImage() تصویر، کانواس یا ویدیو را روی کانواس می‌کشد.

عملیات پیکسلی

ویژگی توضیح
width عرض obieکت ImageData را بازمی‌گرداند.
height ارتفاع obieکت ImageData را بازمی‌گرداند.
data obieکتی که داده‌های ImageData مشخص شده را شامل می‌شود، بازمی‌گرداند.
روش توضیح
createImageData() obieکت ImageData خالی جدیدی ایجاد می‌کند.
getImageData() obieکتی ImageData که داده‌های تصویر محدوده مشخص شده از کانواس را کپی می‌کند، بازمی‌گرداند.
putImageData() داده‌های تصویر (از ImageData مشخص شده) را به کانواس برمی‌گرداند.

ترکیب

ویژگی توضیح
globalAlpha مقدار alpha یا شفافیت فعلی نقاشی را تنظیم یا بازمی‌گرداند.
globalCompositeOperation راهی را که تصویر جدید بر روی تصویر موجود کشیده می‌شود، تنظیم یا بازمی‌گرداند.

دیگر

روش توضیح
save() وضعیت کنونی محیط را ذخیره می‌کند.
restore() وضعیت و ویژگی‌های مسیر ذخیره شده قبلی را بازمی‌گرداند.
createEvent()
getContext()
toDataURL()

ویژگی‌ها و رویدادهای استاندارد

عنصر کانواس همزمان از ویژگی‌ها و رویدادهای استاندارد پشتیبانی می‌کندویژگیورویداد.

صفحات مرتبط

آموزش HTML:کانواس HTML5

آموزش تصویری HTML:آموزش کانواس HTML

دستورالعمل‌های HTML:برچسب <canvas> HTML