HTML-Canvas createImageData()- Methode

❮ HTML-Canvas-Referenz

Beispiel

Erstellen Sie ein 100 * 100 Pixel großes ImageData-Objekt, bei dem jedes Pixel rot ist, und platzieren Sie es auf der Leinwand:

Ihr Browser unterstützt den HTML5-Canvastag nicht.

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);

Browser-Unterstützung

Die Zahlen in der Tabelle geben die erste Browserversion an, die das Verfahren vollständig unterstützt.

Method
createImageData() Yes 9.0 Yes Yes Yes


Definition und Verwendung

Die Methode createImageData() erstellt ein neues, leeres ImageData-Objekt. Die Pixelwerte des neuen Objekts sind standardmäßig transparent schwarz.

Für jedes Pixel in einem ImageData-Objekt gibt es vier Informationen, die RGBA-Werte:

R - Die Farbe Rot (von 0-255)
G - Die Farbe Grün (von 0-255)
B - Die Farbe Blau (von 0-255)
A - Der Alpha-Kanal (von 0-255; 0 ist transparent und 255 ist vollständig sichtbar)

Transparentes Schwarz bedeutet also: (0,0,0,0).

Die Farb-/Alpha-Informationen werden in einem Array gespeichert, und da das Array 4 Informationen für jedes Pixel enthält, ist die Größe des Arrays viermal so groß wie das ImageData-Objekt: Breite*Höhe*4. (Ein einfacherer Weg, die Größe des Arrays zu finden, ist die Verwendung von ImageDataObject.data.length)

Das Array mit den Farb-/Alpha-Informationen wird in der data- Eigenschaft des ImageData-Objekts gespeichert.

Tipp: Nachdem Sie die Farb-/Alpha-Informationen im Array manipuliert haben, können Sie die Bilddaten mit der Methode putImageData() wieder auf die Leinwand kopieren .

Beispiele:

Die Syntax, um das erste Pixel im ImageData-Objekt rot zu machen:

imgData=ctx.createImageData(100,100);

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

Die Syntax, um das zweite Pixel im ImageData-Objekt grün zu machen:

imgData=ctx.createImageData(100,100);

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

JavaScript-Syntax

Es gibt zwei Versionen der Methode createImageData():

1. Dadurch wird ein neues ImageData-Objekt mit den angegebenen Abmessungen (in Pixeln) erstellt:

JavaScript-Syntax: var imgData= Kontext .createImageData( Breite,Höhe );

2. Dadurch wird ein neues ImageData-Objekt mit denselben Abmessungen wie das durch anotherImageData angegebene Objekt erstellt (dabei werden die Bilddaten nicht kopiert):

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

Parameterwerte

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-Referenz