Objeto Canvas do DOM HTML
O elemento <canvas> define uma área de bitmap na página HTML.
O API Canvas permite que o JavaScript desenhe gráficos na tela.
O API Canvas pode desenhar formas, linhas, curvas, caixas, texto e imagens, além de cores, rotação, transparência e outras operações de pixels.
Adicionar Canvas ao HTML
Você pode usar a tag <canvas> para adicionar um elemento canvas em qualquer local da página HTML:
Exemplo
<canvas id="myCanvas" width="300" height="150"></canvas>
Como acessar o elemento Canvas
Você pode usar o método getElementById() do DOM HTML para acessar o elemento <canvas>:
const myCanvas = document.getElementById("myCanvas");
Para desenhar no canvas, você precisa criar o objeto contexto 2D:
const ctx = myCanvas.getContext("2d");
Notas
O elemento HTML <canvas> não tem funcionalidade de desenho.
Você deve usar JavaScript para desenhar qualquer gráfico.
O método getContext() retorna um objeto com ferramentas de desenho (métodos).
Desenhar no canvas
Após criar o objeto contexto 2D, você pode desenhar no canvas.
O método fillRect() abaixo desenha um retângulo preto, cujo canto superior esquerdo está na posição 20,20. O retângulo tem 150 pixels de largura e 100 pixels de altura:
Exemplo
const myCanvas = document.getElementById("myCanvas"); const ctx = myCanvas.getContext("2d"); ctx.fillRect(20, 20, 150, 100);
Usando cor
A propriedade fillStyle define a cor de preenchimento do objeto de desenho:
Exemplo
const myCanvas = document.getElementById("myCanvas"); const ctx = myCanvas.getContext("2d"); ctx.fillStyle = "red"; ctx.fillRect(20, 20, 150, 100);
Você também pode usar o método document.createElement() para criar um novo elemento <canvas> e adicioná-lo à página HTML existente:
Exemplo
const myCanvas = document.createElement("canvas"); document.body.appendChild(myCanvas); const ctx = myCanvas.getContext("2d"); ctx.fillStyle = "red"; ctx.fillRect(20, 20, 150, 100);
Caminho
Os métodos comuns para desenhar no canvas são:
- Iniciar um caminho - beginPath()
- Mover para um ponto - moveTo()
- Desenhar dentro do caminho - lineTo()
- Desenhar um caminho - stroke()
Exemplo
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();
Cor, estilo e sombra
Atributos | Descrição |
---|---|
fillStyle | Definir ou retornar a cor, gradiente ou padrão usados para preencher o desenho. |
strokeStyle | Definir ou retornar a cor, gradiente ou padrão usados para a tração. |
shadowColor | Definir ou retornar a cor usada para a sombra. |
shadowBlur | Definir ou retornar o nível de desfoque da sombra. |
shadowOffsetX | Definir ou retornar a distância horizontal da sombra para a forma. |
shadowOffsetY | Definir ou retornar a distância vertical da sombra para a forma. |
Método | Descrição |
---|---|
createLinearGradient() | Criar um gradiente linear (usado para o conteúdo do canvas). |
createPattern() | Repetir o elemento especificado na direção especificada. |
createRadialGradient() | Criar um gradiente radial/circular (usado para o conteúdo do canvas). |
addColorStop() | Especificar as cores e as posições de parada no objeto de gradiente. |
Estilo de linha
Atributos | Descrição |
---|---|
lineCap | Definir ou retornar o estilo de extremidade da linha. |
lineJoin | Definir ou retornar o tipo de ângulo criado ao intersectar duas linhas. |
lineWidth | Definir ou retornar a largura da linha atual. |
miterLimit | Definir ou retornar o comprimento máximo do canto de transição. |
Retângulo
Método | Descrição |
---|---|
rect() | Criar um retângulo. |
fillRect() | Desenhar um retângulo 'preenchido'. |
strokeRect() | Desenhar um retângulo (sem preenchimento). |
clearRect() | Limpar os pixels especificados dentro do retângulo dado. |
Caminho
Método | Descrição |
---|---|
fill() | Preencher o gráfico atual (caminho). |
stroke() | De fato, desenhar o caminho definido. |
beginPath() | Iniciar um caminho ou redefinir o caminho atual. |
moveTo() | Mover o caminho para um ponto específico no canvas sem criar uma linha. |
closePath() | Criar um caminho que retorna ao ponto de partida a partir do ponto atual. |
lineTo() | Adicionar um novo ponto e criar uma linha daquele ponto para o último ponto especificado no canvas. |
clip() | Cortar uma área de qualquer forma e tamanho da superfície original. |
quadraticCurveTo() | Criar uma curva bézier de segundo grau. |
bezierCurveTo() | Criar uma curva bézier de terceiro grau. |
arc() | Criar um arco/curva (usado para criar círculos ou partes de círculos). |
arcTo() | Criar um arco/curva entre duas tangentes. |
isPointInPath() | Retorna true se o ponto especificado estiver no caminho atual, caso contrário, retorna false. |
Transformação
Método | Descrição |
---|---|
scale() | Aumentar ou diminuir o gráfico atual. |
rotate() | Rotacionar o gráfico atual. |
translate() | Re-mapear a posição (0,0) no canvas. |
transform() | Substituir a matriz de transformação atual do desenho. |
setTransform() | Restabelecer a transformação atual para a matriz unitária. Em seguida, execute transform(). |
Texto
Atributos | Descrição |
---|---|
font | Definir ou retornar as propriedades de fonte do conteúdo do texto atual. |
textAlign | Definir ou retornar o alinhamento atual do conteúdo do texto. |
textBaseline | Define ou retorna a linha de base atual usada para desenhar texto. |
Método | Descrição |
---|---|
fillText() | Desenha texto 'preenchido' no canvas. |
strokeText() | Desenha texto no canvas (sem preenchimento). |
measureText() | Retorna um objeto que contém a largura do texto especificado. |
Desenho de imagem
Método | Descrição |
---|---|
drawImage() | Desenha uma imagem, canvas ou vídeo no canvas. |
Operações de pixels
Atributos | Descrição |
---|---|
width | Retorna a largura do objeto ImageData. |
height | Retorna a altura do objeto ImageData. |
data | Retorna um objeto que contém os dados da imagem do objeto ImageData especificado. |
Método | Descrição |
---|---|
createImageData() | Cria um novo objeto ImageData vazio. |
getImageData() | Retorna um objeto ImageData, que copia os dados de pixels de um retângulo especificado no canvas. |
putImageData() | Coloca os dados da imagem (do objeto ImageData especificado) de volta no canvas. |
Composição
Atributos | Descrição |
---|---|
globalAlpha | Define ou retorna o valor atual de alpha ou transparência do desenho. |
globalCompositeOperation | Define ou retorna como a nova imagem será desenhada sobre a imagem existente. |
Outros
Método | Descrição |
---|---|
save() | Salva o estado atual do contexto. |
restore() | Retorna o estado e as propriedades do caminho salvo anteriormente. |
createEvent() | |
getContext() | |
toDataURL() |
Páginas relacionadas
Tutorial HTML:Canvas HTML5
Tutorial de imagem HTML:Tutorial do Canvas HTML
Manual de referência HTML:Tag <canvas> do HTML