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);
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);
Podpora prohlížeče
Čísla v tabulce určují první verzi prohlížeče, která tuto metodu plně podporuje.
Method | |||||
---|---|---|---|---|---|
createImageData() | 4.0 | 9.0 | 3.6 | 4.0 | 10.1 |
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é)
Průhledná černá tedy 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( šířka, výška ); |
---|
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 |
❮ Objekt plátna