Les API multimédia et graphiques en HTML5, exemples avec <audio/>, <video/> et <canvas/>

initiation à l'API Canvas

DéfinitionCanvas

La balise HTML <canvas> est utilisée pour faire des dessins graphiques à l'aide d'un script JavaScript. L'élément <canvas> est juste un conteneur pour les dessins, il faut utiliser un script pour dessiner. Canvas permet de dessiner des lignes, des carrés, des cercles, des textes...

ExempleCode minimal

1
<canvas id="mon_canvas" width="500" height="500" />
2
3
<script type="text/javascript">
4
    var c = document.getElementById("mon_canvas");
5
    var ctx = c.getContext('2d');
6
    // On effectue ici toutes les opérations de dessin
7
</script>
  • On commence par créer une balise d'identifiant mon_canvas définissant une zone de dessin de 500px de largeur et 500px de hauteur.

  • On utilise ensuite le DOM pour stocker l'élément mon_canvas dans la variable c.

  • On lui applique alors la fonction getContext() qui retourne le contexte de dessin (2D ou 3D), c'est-à-dire un ensemble de méthodes et attributs qui permettent de dessiner et manipuler les images dans l'élément mon_canvas. Dans le cadre de l'API Canvas il s'agira toujours de getContext('2d'), getContext('3d') étant du WebGL.

ExempleDessiner un carré rouge

1
<!DOCTYPE html>
2
<html><body>
3
4
<canvas id="mon_canvas" width="200" height="200" 
5
style="border:1px solid #c3c3c3;">
6
Le navigateur ne reconnaît pas l'élément Canvas
7
</canvas>
8
9
<script>
10
var canvas = document.getElementById("mon_canvas");
11
var ctx = canvas.getContext("2d");
12
ctx.fillStyle = "#FF0000";
13
ctx.fillRect(0,0,100,100);
14
</script>
15
16
</body>
17
</html>
  • La propriété fillStyle permet de définir la couleur de remplissage.

  • La méthode fillRect(x,y,largeur, longueur) dessine un rectangle partant de (x,y).

ExempleDessiner une ligne

1
<script>
2
3
var canvas = document.getElementById("mon_canvas");
4
var ctx = canvas.getContext("2d");
5
ctx.moveTo(0,100);
6
ctx.lineTo(200,100);
7
ctx.stroke();
8
9
</script>
  • La fonction moveTo(x,y) permet de se déplacer au point de coordonnées (x, y) en partant du coin supérieur gauche, cela sans effectuer de tracé.

  • La fonction lineTo(x,y) définit un tracé jusqu'au point de coordonnées (x, y).

  • La fonction stroke() permet de dessiner le tracé défini précédemment.

PrécédentPrécédentSuivantSuivant
AccueilAccueilImprimerImprimer Rihab Hachem, Cindy Pinvin, Baptiste Perraud, 2014-2016 (Contributions : Stéphane Crozat, les étudiants de l'UTC) Paternité - Partage des Conditions Initiales à l'IdentiqueRéalisé avec Scenari (nouvelle fenêtre)