Método createImageData() de Canvas
Definición y uso
createImageData()
método para crear un nuevo objeto ImageData en blanco. El valor predeterminado de los píxeles del nuevo objeto es negro transparente.
Para cada píxel del objeto ImageData, hay cuatro aspectos de información, es decir, los valores RGBA:
- R - rojo (0-255)
- G - verde (0-255)
- B - azul (0-255)
- A - canal alpha (0-255; 0 es transparente, 255 es completamente visible)
Por lo tanto, el negro transparente se representa como (0,0,0,0).
El color/alpha existe en forma de array y, dado que el array contiene cuatro informaciones de cada píxel, el tamaño del array es cuatro veces el tamaño del objeto ImageData. (Hay una manera más sencilla de obtener el tamaño del array, es usar ImageDataObject.data.length)
El array que contiene la información del color/alpha se almacena en el objeto ImageData en data propiedad.
Consejo:En el momento en que se complete la operación de la información del color/alpha en el array, puede usar putImageData() El método copia los datos de la imagen de vuelta al lienzo.
Ejemplo:
Esta sintaxis cambia el primer píxel del objeto ImageData a rojo:
imgData=ctx.createImageData(100,100); imgData.data[0]=255; imgData.data[1]=0; imgData.data[2]=0; imgData.data[3]=255;
Esta sintaxis cambia el segundo píxel del objeto ImageData a rojo:
imgData=ctx.createImageData(100,100); imgData.data[4]=0; imgData.data[5]=255; imgData.data[6]=0; imgData.data[7]=255;
Ejemplo
Cree un objeto ImageData de 100*100 píxeles, donde cada píxel es rojo, y colóquelo en el lienzo:
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);
Sintaxis
Hay dos versiones del método createImageData():
1. Cree un nuevo objeto ImageData con el tamaño especificado (en píxeles):
var imgData=context.createImageData(width,height);
2. Cree un nuevo objeto ImageData de tamaño especificado (en píxeles) que es igual al de otro objeto ImageData existente (no se copiarán los datos de la imagen):
var imgData=context.createImageData(imageData);
Valor del parámetro
Parámetro | Descripción |
---|---|
width | El ancho del objeto ImageData, en píxeles. |
height | La altura del objeto ImageData, en píxeles. |
imageData | Otro objeto ImageData. |
Compatibilidad del navegador
Los números en la tabla indican la versión del navegador que admite completamente la propiedad.
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome | Edge | Firefox | Safari | Opera |
4.0 | 9.0 | 3.6 | 4.0 | 10.1 |
Notas:Internet Explorer 8 y versiones anteriores no admiten el elemento <canvas>.