Image bitmap dans l'élément canvas

L'élément canvas

L'élément canvas est un élément de l'html5 qui définit une zone de pixels. Dans cette zone, on va pouvoir définir une image. Cette image sera définie pixel par pixel : il s'agit donc ici de définir une image bitmap et non une image vectorielle.

Nous en dirons peu sur les instructions permettant de dessiner dans le canvas. Pour en savoir plus, vous pouvez chercher sur le web les nombreux exemples traitant de ce sujet. Un tutoriel bref et clair sur le sujet. En parcourant ce tutoriel, on découvre quelques instructions de tracés de figures géométriques simples, ce sont des instructions très proches de celles qui permettent de dessiner les mêmes figures en SVG : la différence est la nature du résultat, bitmap pour le canvas, vectoriel pour le SVG. Dans la suite de ces pages, nous reprenons les idées exposées dans la page Jouer avec les pixels de ce tutoriel.

On retiendra, entre autres, le schéma de cette page qui montre que les abscisses sont orientés de la gauche vers la droite et les ordonnées du haut vers le bas :
orientation

Agir sur les pixels

Les exemples ci-dessous et leurs commentaires montrent comment agir sur les pixels

La tableau que l'on a nommé tableauPixels dans les exemples ci-dessous contient les composantes RGBa de l'image.

  • La valeur de la composante du rouge du pixel numéro i est tableauPixels[4*i]
  • La valeur de la composante du vert du pixel numéro i est tableauPixels[4*i+1]
  • La valeur de la composante du bleu du pixel numéro i est tableauPixels[4*i+2]
  • La valeur de l'opacité du pixel numéro i est tableauPixels[4*i+3] (valeur entre 0 et 255. Proche de 0, le pixel est transparent, proche de 255 il ne l'est pas du tout).

Exemple :

Affichons de nouveau les composantes RGB mais après les avoir modifiées :

Plutôt qu'un raisonnement sur la longueur du tableau tableauPixels, on peut raisonner avec le nombre de pixels de l'image :