Derniers tutoriels de développement web
 

HTML canvas getImageData() Method

<HTML Canvas Référence

Exemple

Le code ci - dessous les copies de données de pixels pour un rectangle spécifié sur la toile avec getImageData() , puis mettre les données d'image en arrière sur la toile avec putImageData() :

var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
ctx.fillStyle="red";
ctx.fillRect(10,10,50,50);

function copy()
{
var imgData=ctx.getImageData(10,10,50,50);
ctx.putImageData(imgData,10,70);
}
Essayez - le vous - même »

support du navigateur

Les chiffres du tableau indiquent la première version du navigateur qui soutient pleinement la méthode.

méthode
getImageData() Oui 9.0 Oui Oui Oui

Définition et utilisation

Le getImageData() méthode retourne un objet ImageData qui copie les données de pixels pour le rectangle spécifié sur une toile.

Remarque: L'objet ImageData est pas une image, il spécifie une partie (rectangle) sur la toile, et contient des informations de chaque pixel à l' intérieur de ce rectangle.

Pour chaque pixel dans un objet ImageData il y a quatre éléments d'information, les valeurs RGBA:

R - La couleur rouge (0-255)
G - La couleur verte (0-255)
B - La couleur bleue (0-255)
A - Le canal alpha (0-255; 0 est transparent et 255 est entièrement visible)

Les informations de couleur / alpha est maintenue dans un tableau, et est stocké dans la data propriété de l'objet ImageData.

Astuce: Après avoir manipulé les informations de couleur / alpha dans le tableau, vous pouvez copier les données d'image en arrière sur la toile avec le putImageData() méthode.

Exemple:

Le code pour obtenir des informations de couleur / alpha du premier pixel dans l'objet ImageData retourné:

red=imgData.data[0];
green=imgData.data[1];
blue=imgData.data[2];
alpha=imgData.data[3];
Essayez - le vous - même »

Astuce: Vous pouvez également utiliser la getImageData() méthode pour inverser la couleur de tous les pixels d'une image sur la toile.

Boucle à travers tous les pixels et modifier les valeurs de couleur à l'aide de cette formule:

red=255-old_red;
green=255-old_green;
blue=255-old_blue;

Voir ci-dessous «Essayez vous-même» par exemple!


JavaScript Syntaxe

Syntaxe JavaScript: context.getImageData(x,y,width,height);

Paramètre valeurs

Paramètre La description
x La coordonnée x (en pixels) du coin supérieur gauche pour démarrer la copie à partir
y La coordonnée y (en pixels) du coin supérieur gauche pour démarrer la copie à partir
width La largeur de la zone rectangulaire que vous allez copier
height La hauteur de la zone rectangulaire que vous allez copier

Autres exemples

Image à utiliser:

Le cri

Exemple

Utilisez getImageData() pour inverser la couleur de tous les pixels d'une image sur la toile:

YourbrowserdoesnotsupporttheHTML5canvastag.

JavaScript:

var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
var img=document.getElementById("scream");
ctx.drawImage(img,0,0);
var imgData=ctx.getImageData(0,0,c.width,c.height);
// invert colors
for (var i=0;i<imgData.data.length;i+=4)
  {
  imgData.data[i]=255-imgData.data[i];
  imgData.data[i+1]=255-imgData.data[i+1];
  imgData.data[i+2]=255-imgData.data[i+2];
  imgData.data[i+3]=255;
  }
ctx.putImageData(imgData,0,0);
Essayez - le vous - même »

<HTML Canvas Référence