عنصر Canvas DOM HTML

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

API Canvas اجازه می‌دهد تا JavaScript در صفحه نقاشی بکشید.

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");

如需在画布上绘图,您需要创建 2D 上下文对象:

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

笔记

HTML <canvas> 元素本身没有绘图功能。

您必须使用 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() اگر نقطه مشخص شده در مسیر کنونی باشد، true بازگردانید، در غیر این صورت false.

تغییر

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

متن

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

ترسیم تصویر

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

عملیات پیکسل

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

ترکیب

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

دیگر

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

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

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

صفحات مرتبط

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

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

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