Canvas API

HTML <canvas> elementi — HTML sahifadagi bitmap (piksellar xaritasi) maydoni.

Canvas API JavaScript’ga canvas’da grafika chizish imkonini beradi.

Canvas API shakllar, chiziqlar, egri chiziqlar, to‘rtburchaklar, matn va rasmlarni ranglar, aylantirishlar, shaffoflik va boshqa piksel amallari bilan chiza oladi.

Misol

<canvas id="myCanvas" width="300" height="150"></canvas>
O‘zingiz sinab ko‘ring »

<canvas> elementiga HTML DOM metodi getElementById() orqali murojaat qilasiz.

Canvas’da chizish uchun 2D kontekst obyektini yaratishingiz kerak:

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

Eslatma

HTML <canvas> elementining o‘zi chizish imkoniyatiga ega emas.

Har qanday grafikani chizish uchun JavaScript’dan foydalanishingiz kerak.

getContext() metodi chizish uchun vositalar (metodlar) to‘plamiga ega obyektni qaytaradi.


Yo‘llar (Paths)

Canvas’da chizishning odatiy usuli:

  1. Yo‘lni boshlash - beginPath()
  2. Nuqtaga o‘tish - moveTo()
  3. Yo‘lda chizish - lineTo()
  4. Yo‘lni chizish - stroke()

Misol

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();
O‘zingiz sinab ko‘ring »

Canvas API to‘liq ma’lumotnomasi

Ushbu ma’lumotnoma canvas’da matn, chiziqlar, to‘rtburchaklar, aylanalar, rasmlar va boshqalarni chizish uchun ishlatiladigan getContext("2d") obyektining barcha xususiyatlari va metodlarini qamrab oladi.

Chizish metodlari

Canvas’da bevosita chizish uchun faqat 3 ta metod mavjud:

Metod Tavsif
fillRect() "To‘ldirilgan" to‘rtburchak chizadi
strokeRect() To‘rtburchak chizadi (to‘ldirmasdan)
clearRect() To‘rtburchak ichidagi belgilangan piksellarni tozalaydi

Yo‘l (path) metodlari

Metod Tavsif
beginPath() Yangi yo‘l boshlaydi yoki joriy yo‘lni qayta o‘rnatadi
closePath() Yo‘lga joriy nuqtadan boshlang‘ich nuqtagacha chiziq qo‘shadi
isPointInPath() Belgilangan nuqta joriy yo‘lda bo‘lsa, true qaytaradi
moveTo() Yo‘lni canvas’dagi nuqtaga ko‘chiradi (chizmasdan)
lineTo() Yo‘lga chiziq qo‘shadi
fill() Joriy yo‘lni to‘ldiradi
rect() Yo‘lga to‘rtburchak qo‘shadi
stroke() Joriy yo‘lni chizadi
 Aylanalar va egri chiziqlar
bezierCurveTo() Yo‘lga kubik Bezier egri chizig‘ini qo‘shadi
arc() Yo‘lga yoy/egri chiziq (aylana yoki aylananing qismlari) qo‘shadi
arcTo() Yo‘lga ikkita tangens orasida yoy/egri chiziq qo‘shadi
quadraticCurveTo() Yo‘lga kvadratik Bezier egri chizig‘ini qo‘shadi


Text

Metod/xususiyat Tavsif
direction Matn chizishda ishlatiladigan yo‘nalishni o‘rnatadi yoki qaytaradi
fillText() Canvas’ga "to‘ldirilgan" matn chizadi
font Matn mazmuni uchun shrift xususiyatlarini o‘rnatadi yoki qaytaradi
measureText() Belgilangan matn kengligini o‘z ichiga olgan obyektni qaytaradi
strokeText() Canvas’ga matn chizadi
textAlign Matn mazmunining tekislanishini o‘rnatadi yoki qaytaradi
textBaseline Matn chizishda ishlatiladigan asosiy chiziqni (baseline) o‘rnatadi yoki qaytaradi

Ranglar, uslublar va soyalar

Metod/Xususiyat Tavsif
addColorStop() Gradient obyektidagi ranglar va to‘xtash pozitsiyalarini belgilaydi
createLinearGradient() Chiziqli gradient yaratadi (canvas mazmunida foydalanish uchun)
createPattern() Belgilangan elementni belgilangan yo‘nalishda takrorlaydi
createRadialGradient() Radial/aylanma gradient yaratadi (canvas mazmunida foydalanish uchun)
fillStyle Chizmani to‘ldirish uchun ishlatiladigan rang, gradient yoki naqshni o‘rnatadi yoki qaytaradi
lineCap Chiziq uchlarining uslubini o‘rnatadi yoki qaytaradi
lineJoin Ikki chiziq uchrashganda hosil bo‘ladigan burchak turini o‘rnatadi yoki qaytaradi
lineWidth Joriy chiziq kengligini o‘rnatadi yoki qaytaradi
miterLimit Maksimal miter uzunligini o‘rnatadi yoki qaytaradi
shadowBlur Soyalar uchun xiralik darajasini o‘rnatadi yoki qaytaradi
shadowColor Soyalar uchun ishlatiladigan rangni o‘rnatadi yoki qaytaradi
shadowOffsetX Soyaning shakldan gorizontal masofasini o‘rnatadi yoki qaytaradi
shadowOffsetY Soyaning shakldan vertikal masofasini o‘rnatadi yoki qaytaradi
strokeStyle Chiziqlar (stroke) uchun ishlatiladigan rang, gradient yoki naqshni o‘rnatadi yoki qaytaradi

Transformatsiyalar

Metod Tavsif
scale() Joriy chizmani kattalashtirib yoki kichiklashtirib masshtablaydi
rotate() Joriy chizmani aylantiradi
translate() Canvas’dagi (0,0) pozitsiyasini boshqa joyga ko‘chiradi
transform() Chizma uchun joriy transformatsiya matritsasini almashtiradi
setTransform() Joriy transformatsiyani birlik matritsaga qaytaradi. So‘ngra transform() ni ishga tushiradi

Rasm chizish

Metod Tavsif
drawImage() Canvas’ga rasm, canvas yoki video chizadi

ImageData obyekti / Piksellar bilan ishlash

Metod/Xususiyat Tavsif
createImageData() Yangi, bo‘sh ImageData obyektini yaratadi
getImageData() Canvas’dagi belgilangan to‘rtburchak uchun piksel ma’lumotlaridan nusxa oladigan ImageData obyektini qaytaradi
ImageData.data Belgilangan ImageData obyektining rasm ma’lumotlarini o‘z ichiga olgan obyektni qaytaradi
ImageData.height ImageData obyektining balandligini qaytaradi
ImageData.width ImageData obyektining kengligini qaytaradi
putImageData() Rasm ma’lumotlarini (belgilangan ImageData obyektidan) canvas’ga qaytarib joylaydi

Kompozitsiya (Compositing)

Xususiyat Tavsif
globalAlpha Chizmaning joriy alfa yoki shaffoflik qiymatini o‘rnatadi yoki qaytaradi
globalCompositeOperation Yangi rasm mavjud rasm ustiga qanday chizilishini o‘rnatadi yoki qaytaradi

Boshqa metodlar

Metod Tavsif
clip() Asl canvas’dan istalgan shakl va o‘lchamdagi hududni qirqib oladi
save() Joriy chizma kontekstining holatini va uning barcha atributlarini saqlaydi
restore() Avval saqlangan holat va atributlarni tiklaydi
createEvent()  
getContext()  
toDataURL()  

Standart xususiyatlar va hodisalar

canvas obyekti standart xususiyatlar va hodisalarni ham qo‘llab-quvvatlaydi.


Tegishli sahifalar

Canvas darsligi: Canvas darsligi

HTML darsligi: HTML5 Canvas

HTML ma’lumotnomasi: HTML <canvas> tegi


Brauzerlarda qo‘llab-quvvatlash

<canvas> elementi HTML5 standartidir (2014).

Canvas API barcha zamonaviy brauzerlarda qo‘llab-quvvatlanadi:

Chrome Edge Firefox Safari Opera IE
Ha Ha Ha Ha Ha 9-11


W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!