HTML canvas createImageData() Metoda
Příklad
Vytvořte objekt ImageData 100*100 pixelů, kde je každý pixel červený, a umístěte jej na plátno:
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