API Canvas

Элемент <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() Создать дваждыBezier-кривую.
bezierCurveTo() Создать триждыBezier-кривую.
arc() Создать дугу/кривую (для создания круга или части круга).
arcTo() Создать дугу/кривую между двумя касательными.
isPointInPath() Вернуть true, если указанная точка находится в текущем пути, в противном случае вернуть false.

Преобразование

Метод Описание
scale() Увеличить или уменьшить текущий графический объект.
rotate() Обратить текущий графический объект.
translate() Переместить координаты (0,0) на канвас.
transform() Заменить текущую матрицу преобразования рисования.
setTransform() Сбросить текущий преобразование до единичной матрицы. Затем запустить transform().

Текст

свойства Описание
font Установить или вернуть текущие свойства шрифта текста.
textAlign Установить или вернуть текущий способ выравнивания текста.
textBaseline Устанавливает или возвращает текущую текстовую ось, используемую при рисовании текста.
Метод Описание
fillText() Рисование заливного текста на canvas.
strokeText() Рисование текста на canvas (без заливки).
measureText() Возвращает объект, содержащий ширину указанного текста.

Рисование изображений

Метод Описание
drawImage() Рисование изображений, canvas или видео на canvas.

Операции с像素ами

свойства Описание
width Возвращает ширину объекта ImageData.
height Возвращает высоту объекта ImageData.
data Возвращает объект, содержащий данные изображения из указанного объекта ImageData.
Метод Описание
createImageData() Создает новый пустой объект ImageData.
getImageData() Возвращает объект ImageData, который копирует данные пикселей заданного прямоугольника на canvas.
putImageData() Возвращает изображение данных (из указанного объекта ImageData) на canvas.

Синтез

свойства Описание
globalAlpha Устанавливает или возвращает текущее значение alpha или прозрачности рисования.
globalCompositeOperation Устанавливает или возвращает способ рисования нового изображения на существующем изображении.

Другое

Метод Описание
save() Сохраняет текущее состояние контекста.
restore() Возвращает сохраненное состояние и свойства пути.
createEvent()
getContext()
toDataURL()

стандартные свойства и события

объект canvas поддерживает стандартныесвойстваиСобытия.

Связанные страницы

Учебник HTML:Canvas HTML5

Учебник HTML:Учебник HTML Canvas

Руководство HTML:Тег <canvas> HTML