عنصر 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);
مسیر
在画布上绘图的常见方法是:
- 开始路径 - 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() | اگر نقطه مشخص شده در مسیر کنونی باشد، 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