Derniers tutoriels de développement web
 

HTML canvas getImageData() Method

<Canvas objet

Exemple

Le code ci - dessous les copies des données de pixels pour un rectangle spécifié sur la toile avec getImageData() , et ensuite mettre les données d'image 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 vous - même »

Support du navigateur

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

méthode
getImageData() 4.0 9.0 3.6 4.0 10.1

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.

Note: L'objet ImageData est pas une image, elle spécifie une partie (rectangle) sur la toile, et contient des informations de chaque pixel dans ce rectangle.

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

R - La couleur rouge (from 0-255)
G - La couleur verte (from 0-255)
B - La couleur bleue (from 0-255)
A - Le canal alpha (from 0-255; 0 is transparent and 255 is fully visible)

Les informations de couleur / alpha est maintenue dans une matrice, et est stocké dans la donnée propriété de l'objet ImageData.

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

Example:

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

red=imgData.data[0];
green=imgData.data[1];
blue=imgData.data[2];
alpha=imgData.data[3];

Essayez vous - même

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

Une boucle sur tous les pixels et modifier les valeurs de couleur à l'aide de la formule suivante:

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

Voir ci - dessous "Try it Yourself" - "Try it Yourself" par exemple!


Syntaxe JavaScript

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

Les valeurs des paramètres

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

Exemples

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 vous - même »

<Canvas objet