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:
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.
Define ou retorna o estilo das extremidades da linha.
lineJoin
Define ou retorna o tipo de cantos desenhados.
lineWidth
Define ou retorna a largura da linha atual.
miterLimit
Define ou retorna o comprimento máximo da esquadria.
lineDashOffset
Define ou retorna o deslocamento para padrões de traço de linha.
Método
Descriçã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étodo
Descriçã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étodo
Descriçã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étodo
Descriçã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
Propriedade
Descrição
font
Define a aparência de um texto desenhado no canvas.
textAlign
Define o alinhamento de um texto desenhado no canvas.
textBaseline
Define o alinhamento vertical de um texto desenhado no canvas.
direction
Define ou retorna a direção do texto (ltr, rtl ou inherit).
Método
Descriçã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
Propriedade
Descrição
imageSmoothingEnabled
Define ou retorna se as imagens dimensionadas são suavizadas (true) ou pixeladas (false).
Método
Descriçã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 ImageData
Descrição
width
Retorna a largura em pixels de um objeto ImageData.
height
Retorna a altura em pixels de um objeto ImageData.
data
Retorna um Uint8ClampedArray contendo os dados de pixels RGBA.
Método
Descriçã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
Propriedade
Descrição
globalAlpha
Define ou retorna o valor atual de alfa/transparência.
globalCompositeOperation
Define ou retorna o tipo de operação de composição quando uma nova imagem é desenhada.
filter
Define 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étodo
Descriçã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.
Membro
Descriçã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?