W3docs

Referência do Canvas

O elemento <canvas> do HTML5 é usado para desenhar gráficos via scripting (geralmente JavaScript). Veja as propriedades e métodos disponíveis para desenhar no canvas.

O elemento <canvas> do HTML5 é usado para desenhar gráficos via scripting (geralmente JavaScript). Por si só, o elemento <canvas> é apenas um contêiner vazio — você desenha nele a partir de um script.

Para obter um objeto com o qual desenhar, você chama o método getContext('2d') do elemento. Ele retorna um objeto CanvasRenderingContext2D:

const canvas = document.getElementById('myCanvas');
const ctx = canvas.getContext('2d'); // a CanvasRenderingContext2D
ctx.fillStyle = 'green';
ctx.fillRect(10, 10, 100, 80);

Quase todas as propriedades e métodos desta página pertencem a esse objeto de contexto 2D (ctx acima), não ao elemento <canvas>. As duas exceções são getContext() e toDataURL(), que pertencem ao próprio elemento <canvas>, e as propriedades width/height/data em Manipulação de Pixels, que pertencem a objetos ImageData. Esses estão agrupados em suas próprias seções abaixo.

Para tutoriais passo a passo, consulte Introdução ao Canvas, desenhando formas, coordenadas, texto e gradientes.

Cores, Estilos e Sombras

PropriedadeDescrição
fillStyleDefine ou retorna a cor, gradiente ou padrão usado para preencher as formas.
strokeStyleDefine ou retorna a cor, gradiente ou padrão usado para as linhas ao redor das formas.
shadowColorDefine ou retorna a cor das sombras.
shadowBlurDefine ou retorna o nível de desfoque das sombras.
shadowOffsetXDefine ou retorna o deslocamento x da sombra.
shadowOffsetYDefine ou retorna o deslocamento y da sombra.
MétodoDescrição
createLinearGradient()Cria um gradiente linear para uso no conteúdo do canvas.
createPattern()Repete um elemento específico na direção indicada.
createRadialGradient()Cria um gradiente circular/radial para uso no conteúdo do canvas.
addColorStop()Define cores e posições de parada no objeto de gradiente.

Consulte o tutorial de gradientes do Canvas para exemplos práticos.

Estilos de Linha

PropriedadeDescrição
lineCapDefine ou retorna o estilo das extremidades da linha.
lineJoinDefine ou retorna o tipo de cantos desenhados.
lineWidthDefine ou retorna a largura da linha atual.
miterLimitDefine ou retorna o comprimento máximo da esquadria.
lineDashOffsetDefine ou retorna o deslocamento para padrões de traço de linha.
MétodoDescrição
getLineDash()Retorna o padrão de traço de linha atual como um array de números.
setLineDash()Define o padrão de traço de linha a partir de um array de números (ex.: [5, 3]).

Retângulos

MétodoDescrição
rect()Cria retângulos.
fillRect()Desenha retângulos preenchidos.
strokeRect()Desenha contornos retangulares.
clearRect()Limpa os pixels especificados dentro de um retângulo específico.

Caminhos

MétodoDescrição
fill()Preenche o(s) subcaminho(s) atual(is) com o fillStyle atual.
stroke()Traça o(s) subcaminho(s) atual(is) com o strokeStyle atual.
beginPath()Inicia um novo caminho ou redefine o caminho atual.
moveTo()Move o caminho para o ponto definido no canvas sem desenhar uma linha.
closePath()Adiciona um caminho do ponto atual de volta ao ponto de início.
lineTo()Adiciona uma linha ao subcaminho atual.
clip()Cria uma região de recorte a partir do caminho atual.
quadraticCurveTo()Adiciona uma curva de Bézier quadrática.
bezierCurveTo()Adiciona uma curva de Bézier cúbica.
arc()Adiciona um arco/curva para criar círculos ou partes de círculos.
arcTo()Adiciona um arco/curva entre duas tangentes.
ellipse()Adiciona um arco elíptico ao caminho.
isPointInPath()Verifica se o ponto especificado está ou não no caminho atual.

Transformações

MétodoDescrição
scale()Aumenta ou diminui a escala do desenho atual.
rotate()Rotaciona o desenho atual.
translate()Ajusta o sistema de coordenadas do canvas.
transform()Aplica uma matriz de transformação ao canvas.
setTransform()É semelhante a transform(). Pode ser usado para inclinar, escalonar e transladar o canvas.
resetTransform()Redefine a transformação atual para a matriz identidade.

Consulte Coordenadas do Canvas para entender como a matriz de transformação mapeia as posições de desenho para pixels.

Texto

PropriedadeDescrição
fontDefine a aparência de um texto desenhado no canvas.
textAlignDefine o alinhamento de um texto desenhado no canvas.
textBaselineDefine o alinhamento vertical de um texto desenhado no canvas.
directionDefine ou retorna a direção do texto (ltr, rtl ou inherit).
MétodoDescrição
fillText()Adiciona texto ao canvas.
strokeText()Adiciona texto contornado ao canvas.
measureText()Mede a largura do texto.

Consulte o tutorial de texto do Canvas para exemplos completos.

Desenho de Imagens

PropriedadeDescrição
imageSmoothingEnabledDefine ou retorna se as imagens dimensionadas são suavizadas (true) ou pixeladas (false).
MétodoDescrição
drawImage()Desenha uma imagem, vídeo ou canvas sobre o canvas.

Manipulação de Pixels

As propriedades abaixo pertencem ao objeto ImageData retornado por createImageData() / getImageData(), não ao elemento <canvas> ou ao contexto.

Propriedade ImageDataDescrição
widthRetorna a largura em pixels de um objeto ImageData.
heightRetorna a altura em pixels de um objeto ImageData.
dataRetorna um Uint8ClampedArray contendo os dados de pixels RGBA.
MétodoDescrição
createImageData()Cria um novo objeto ImageData.
getImageData()Retorna um objeto ImageData que copia os dados de pixels do retângulo especificado.
putImageData()Coloca os dados de imagem no canvas a partir do objeto ImageData.

Composição

PropriedadeDescrição
globalAlphaDefine ou retorna o valor atual de alfa/transparência.
globalCompositeOperationDefine ou retorna o tipo de operação de composição quando uma nova imagem é desenhada.
filterDefine ou retorna um filtro CSS aplicado ao desenho (ex.: blur(4px), grayscale(1)).

Estado do Canvas

Esses métodos pertencem ao contexto 2D e permitem salvar e restaurar o estado completo do desenho (estilos, transformações, região de recorte) como uma pilha.

MétodoDescrição
save()Empurra o estado atual do contexto para a pilha de estados.
restore()Remove o estado salvo mais recentemente, restaurando aqueles estilos e transformações.

O elemento <canvas>

Os membros a seguir pertencem ao próprio elemento <canvas>, não ao contexto 2D.

MembroDescrição
getContext()Retorna um contexto de desenho para o canvas — passe '2d' para um CanvasRenderingContext2D.
toDataURL()Retorna uma URL de dados (imagem base64) do conteúdo do canvas, ex.: 'image/png'.

Prática

Prática
O que o método getContext('2d') pode fazer no HTML5 Canvas?
O que o método getContext('2d') pode fazer no HTML5 Canvas?
Was this page helpful?