HTML canvas createImageData() Metoda

❮ HTML Canvas Reference

Příklad

Vytvořte objekt ImageData 100*100 pixelů, kde je každý pixel červený, a umístěte jej na plátno:

Váš prohlížeč nepodporuje HTML5canvatag.

JavaScript:

var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
var imgData = ctx.createImageData(100, 100);
var i;
for (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);

Podpora prohlížeče

Čísla v tabulce určují první verzi prohlížeče, která tuto metodu plně podporuje.

Method
createImageData() Yes 9.0 Yes Yes Yes


Definice a použití

Metoda createImageData() vytvoří nový prázdný objekt ImageData. Hodnoty pixelů nového objektu jsou standardně průhledné černé.

Pro každý pixel v objektu ImageData existují čtyři informace, hodnoty RGBA:

R - Červená barva (od 0-255)
G - Zelená barva (od 0-255)
B - Modrá barva (od 0-255)
A - Alfa kanál (od 0-255; 0 je průhledný a 255 je plně viditelné)

Takže průhledná černá znamená: (0,0,0,0).

Informace o barvě/alfa jsou uloženy v poli, a protože pole obsahuje 4 informace pro každý pixel, velikost pole je 4krát větší než velikost objektu ImageData: šířka*výška*4. (Snazší způsob, jak zjistit velikost pole, je použít ImageDataObject.data.length)

Pole obsahující informace o barvě/alfa je uloženo ve vlastnosti data objektu ImageData.

Tip: Poté, co zpracujete informace o barvě/alfa v poli, můžete zkopírovat obrazová data zpět na plátno pomocí metody putImageData() .

Příklady:

Syntaxe pro zčervenání prvního pixelu v objektu ImageData:

imgData=ctx.createImageData(100,100);

imgData.data[0]=255;
imgData.data[1]=0;
imgData.data[2]=0;
imgData.data[3]=255;

Syntaxe pro zezelenání druhého pixelu v objektu ImageData:

imgData=ctx.createImageData(100,100);

imgData.data[4]=0;
imgData.data[5]=255;
imgData.data[6]=0;
imgData.data[7]=255;

Syntaxe JavaScriptu

Existují dvě verze metody createImageData():

1. Tím se vytvoří nový objekt ImageData se zadanými rozměry (v pixelech):

Syntaxe JavaScriptu: var imgData= context .createImageData( width,height );

2. Tím se vytvoří nový objekt ImageData se stejnými rozměry, jako má objekt určený jinýmImageData (toto nekopírují data obrázku):

JavaScript syntax: var imgData=context.createImageData(imageData);

Hodnoty parametrů

Parameter Description
width The width of the new ImageData object, in pixels
height The height of the new ImageData object, in pixels
imageData anotherImageData object

❮ HTML Canvas Reference