Объект 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() | Создать二次 Бezier-кривую. |
bezierCurveTo() | Создать三次 Бezier-кривую. |
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() |
Связанные страницы
Учебник HTML:Canvas HTML5
Учебник HTML по изображениям:Учебник HTML Canvas
Референтное руководство HTML:Тег <canvas> HTML