Método createImageData() do Canvas
Definição e uso
createImageData()
Método para criar um novo objeto ImageData vazio. O valor padrão dos pixels do novo objeto é preto transparente.
Para cada pixel no 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)
Portanto, preto transparente representa (0,0,0,0).
As informações de color/alpha existem na forma de array e, como o array contém quatro informações para cada pixel, seu tamanho é quatro vezes maior que o do objeto ImageData. (Há uma maneira mais simples de obter o tamanho do array, usando ImageDataObject.data.length)
O array que contém as informações de color/alpha é armazenado no objeto ImageData na propriedade data nas propriedades.
Dica:Após concluir a operação das 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:
Esta sintaxe muda o primeiro pixel do objeto ImageData para vermelho:
imgData=ctx.createImageData(100,100); imgData.data[0]=255; imgData.data[1]=0; imgData.data[2]=0; imgData.data[3]=255;
Esta sintaxe muda o segundo pixel do objeto ImageData para vermelho:
imgData=ctx.createImageData(100,100); imgData.data[4]=0; imgData.data[5]=255; imgData.data[6]=0; imgData.data[7]=255;
Exemplo
Crie um objeto ImageData de 100x100 pixels, onde cada pixel é vermelho, e coloque-o na tela:
JavaScript:
var c=document.getElementById("myCanvas"); var ctx=c.getContext("2d"); var imgData=ctx.createImageData(100,100); for (var i=0;i<imgData.data.length;i+=4) { imgData.data[i+0]=255; imgData.data[i+1]=0; imgData.data[i+2]=0; imgData.data[i+3]=255; } ctx.putImageData(imgData,10,10);
Sintaxe
Existem duas versões do método createImageData():
1. Crie um novo objeto ImageData com o tamanho especificado (em pixels):
var imgData=context.createImageData(width,height);
2. Crie um novo objeto ImageData com o tamanho especificado (em pixels), sem copiar os dados da imagem:
var imgData=context.createImageData(imageData);
Valor do parâmetro
Parâmetro | Descrição |
---|---|
width | Largura do objeto ImageData, em pixels. |
height | Altura do objeto ImageData, em pixels. |
imageData | Outro objeto ImageData. |
Suporte do navegador
Os números na tabela indicam a versão do navegador que suportou a primeira vez o atributo.
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome | Edge | Firefox | Safari | Opera |
4.0 | 9.0 | 3.6 | 4.0 | 10.1 |
Observação:O Internet Explorer 8 e versões anteriores não suportam o elemento <canvas>.