API Canvas
- Página anterior Estilo HTML
- Próxima página Console API
O elemento <canvas> define uma área de bitmap na página HTML.
O API Canvas permite que o JavaScript desenhe gráficos no canvas.
O API Canvas pode desenhar formas, linhas, curvas, retângulos, 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 o 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 HTML DOM getElementById() para acessar o elemento <canvas>:
const myCanvas = document.getElementById("myCanvas");
Para desenhar no canvas, você precisa criar o objeto de 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 de contexto 2D, você pode começar a desenhar no canvas.
O método fillRect() abaixo desenha um retângulo preto com o canto superior esquerdo 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);
Usar 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-se 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 o traço. |
shadowColor | Definir ou retornar a cor usada para a sombra. |
shadowBlur | Definir ou retornar o nível de desfoque da sombra. |
shadowOffsetX | Configura ou retorna a distância horizontal da sombra para a forma. |
shadowOffsetY | Configura ou retorna a distância vertical da sombra para a forma. |
Método | Descrição |
---|---|
createLinearGradient() | Cria um gradiente linear (usado para o conteúdo do canvas). |
createPattern() | Repete o elemento especificado na direção especificada. |
createRadialGradient() | Cria um gradiente radial/circular (usado para o conteúdo do canvas). |
addColorStop() | Especifica a cor e a posição de parada do objeto de gradiente. |
Estilo de linha
Atributos | Descrição |
---|---|
lineCap | Configura ou retorna o estilo de cobertura do extremo da linha. |
lineJoin | Configura ou retorna o tipo de ângulo criado ao intersecção de duas linhas. |
lineWidth | Configura ou retorna a largura da linha atual. |
miterLimit | Configura ou retorna o comprimento máximo do canto. |
Retângulo
Método | Descrição |
---|---|
rect() | Cria um retângulo. |
fillRect() | Desenha um retângulo 'preenchido'. |
strokeRect() | Desenha um retângulo (sem preenchimento). |
clearRect() | Limpa os pixels especificados dentro do retângulo dado. |
Caminho
Método | Descrição |
---|---|
fill() | Preenche o gráfico atual (caminho). |
stroke() | De fato, desenha o caminho definido. |
beginPath() | Inicia um caminho ou redefine o caminho atual. |
moveTo() | Move o caminho para um ponto especificado no canvas, sem criar uma linha. |
closePath() | Cria um caminho que retorna ao ponto de partida. |
lineTo() | Adiciona um novo ponto e cria uma linha daquele ponto para o último ponto especificado no canvas. |
clip() | Recorta uma área de qualquer forma e tamanho da pincelada original. |
quadraticCurveTo() | Cria uma curva bézier de segundo grau. |
bezierCurveTo() | Cria uma curva bézier de terceiro grau. |
arc() | Cria um arco/curva (usado para criar círculos ou partes de círculos). |
arcTo() | Cria 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() | Aumenta ou diminui o gráfico atual. |
rotate() | Gira o gráfico atual. |
translate() | Reinterpeta a posição (0,0) no canvas. |
transform() | Substitui a matriz de transformação atual de desenho. |
setTransform() | Redefine a transformação atual para a matriz unitária. Em seguida, execute transform(). |
Texto
Atributos | Descrição |
---|---|
font | Configura ou retorna as propriedades de fonte do conteúdo do texto atual. |
textAlign | Configura ou retorna 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 transparencia 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() |
Atributos e eventos padrão
O objeto canvas suporta tanto atributos quanto eventos padrãoAtributoseEventos.
Páginas relacionadas
Tutorial HTML:Canvas HTML5
Tutorial de imagem HTML:Tutorial de Canvas HTML
Manual de referência HTML:Tag <canvas> HTML
- Página anterior Estilo HTML
- Próxima página Console API