Método getImageData() do canvas HTML
Definição e uso
getImageData()
O método retorna um objeto ImageData, que copia os dados de pixels do retângulo especificado no canvas.
Para cada pixel do objeto ImageData, existem quatro tipos de informações, ou seja, os valores RGBA:
- R - vermelho (0-255)
- G - verde (0-255)
- B - azul (0-255)
- A - canal alpha (0-255; 0 é transparente, 255 é completamente visível)
As informações de color/alpha existem em forma de array e são armazenadas no objeto ImageData data propriedade.
Dica:Após operar as informações de color/alpha no array, você pode usar putImageData() O método copia os dados da imagem de volta para o canvas.
Exemplo:
A seguir, o código pode obter as informações de cor/alpha do primeiro pixel do objeto ImageData retornado:
red=imgData.data[0]; green=imgData.data[1]; blue=imgData.data[2]; alpha=imgData.data[3];
Dica:Você também pode usar o método getImageData() para inverter a cor de cada pixel de uma imagem específica na tela.
Use a fórmula a seguir para percorrer todos os pixels e alterar seus valores de cor:
red=255-old_red; green=255-old_green; blue=255-old_blue;
(Veja o exemplo "Experimente você mesmo" abaixo.)
Exemplo
Exemplo 1
O código a seguir usa getImageData() para copiar os dados dos pixels de um retângulo específico na tela e, em seguida, usa putImageData() para reposicionar os dados de imagem na tela:
var c=document.getElementById("myCanvas"); var ctx=c.getContext("2d"); ctx.fillStyle="red"; ctx.fillRect(10,10,50,50); function copy() } var imgData=ctx.getImageData(10,10,50,50); ctx.putImageData(imgData,10,70); }
Dica:Mais exemplos fornecidos na parte inferior da página.
Sintaxe
var imgData=context.getImageData(x,y,width,height);
Valores dos parâmetros
Parâmetros | Descrição |
---|---|
x | Coordenada x do canto superior esquerdo do início da cópia. |
y | Coordenada y do canto superior esquerdo do início da cópia. |
width | Largura da área retangular a ser copiada. |
height | Altura da área retangular a ser copiada. |
Mais exemplos
Exemplo 2
Imagem a ser usada:

Use getImageData() para inverter a cor de cada pixel da imagem na tela.
JavaScript:
var c=document.getElementById("myCanvas"); var ctx=c.getContext("2d"); var img=document.getElementById("tulip"); ctx.drawImage(img,0,0); var imgData=ctx.getImageData(0,0,c.width,c.height); // Inverter cores for (var i=0; i<imgData.data.length; i+=4) } imgData.data[i]=255-imgData.data[i]; imgData.data[i+1]=255-imgData.data[i+1]; imgData.data[i+2]=255-imgData.data[i+2]; imgData.data[i+3]=255; } ctx.putImageData(imgData,0,0);
Suporte do navegador
Os números na tabela indicam a versão do navegador que suportou a primeira vez essa propriedade.
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome | Edge | Firefox | Safari | Opera |
4.0 | 9.0 | 3.6 | 4.0 | 10.1 |
Notas:Os navegadores Internet Explorer 8 e anteriores não suportam o elemento <canvas>.