API Canvas

L'élément <canvas> définit une zone bitmap dans une page HTML.

L'API Canvas permet à JavaScript de dessiner des graphiques sur le canevas.

L'API Canvas peut dessiner des formes, des lignes, des courbes, des boîtes, du texte et des images, ainsi que des opérations sur les couleurs, la rotation, la transparence et d'autres opérations sur les pixels.

Ajouter Canvas à HTML

Vous pouvez ajouter un élément canvas à n'importe quel endroit dans une page HTML en utilisant la balise <canvas> :

Exemple

<canvas id="myCanvas" width="300" height="150"></canvas>

Essayez-le vous-même

Comment accéder à l'élément Canvas

Vous pouvez accéder à l'élément <canvas> à l'aide de la méthode HTML DOM getElementById() :

const myCanvas = document.getElementById("myCanvas");

Pour dessiner sur le canevas, vous devez créer un objet contexte 2D :

const ctx = myCanvas.getContext("2d");

Remarque

L'élément HTML <canvas> n'a pas de fonctionnalité de dessin.

Vous devez utiliser JavaScript pour dessiner tout graphique.

La méthode getContext() retourne un objet avec des outils de dessin (méthodes).

Dessiner sur le canevas

Après avoir créé l'objet contexte 2D, vous pouvez dessiner sur le canevas.

La méthode fillRect() ci-dessous dessine un rectangle noir whose coin supérieur gauche est à la position 20,20. Le rectangle a une largeur de 150 pixels et une hauteur de 100 pixels :

Exemple

const myCanvas = document.getElementById("myCanvas");
const ctx = myCanvas.getContext("2d");
ctx.fillRect(20, 20, 150, 100);

Essayez-le vous-même

Utiliser une couleur

L'attribut fillStyle définit la couleur de remplissage de l'objet de dessin :

Exemple

const myCanvas = document.getElementById("myCanvas");
const ctx = myCanvas.getContext("2d");
ctx.fillStyle = "red";
ctx.fillRect(20, 20, 150, 100);

Essayez-le vous-même

Vous pouvez également utiliser la méthode document.createElement() pour créer un nouvel élément <canvas> et l'ajouter à une page HTML existante :

Exemple

const myCanvas = document.createElement("canvas");
document.body.appendChild(myCanvas);
const ctx = myCanvas.getContext("2d");
ctx.fillStyle = "red";
ctx.fillRect(20, 20, 150, 100);

Essayez-le vous-même

Chemin

Les méthodes courantes pour dessiner sur le canevas sont :

  1. Commencer un chemin - beginPath()
  2. Déplacer à un point - moveTo()
  3. Dessiner dans le chemin - lineTo()
  4. Dessiner un chemin - stroke()

Exemple

const canvas = document.getElementById("myCanvas");
const ctx = canvas.getContext("2d");
ctx.beginPath();
ctx.moveTo(20, 20);
ctx.lineTo(20, 100);
ctx.lineTo(70, 100);
ctx.stroke();

Essayez-le vous-même

Couleur, style et ombre

Attribut Description
fillStyle Définir ou retourner la couleur, la dégradée ou le motif utilisés pour le remplissage du dessin.
strokeStyle Définir ou retourner la couleur, la dégradée ou le motif utilisés pour les traits.
shadowColor Définir ou retourner la couleur utilisée pour l'ombre.
shadowBlur Définir ou retourner le niveau de flou de l'ombre.
shadowOffsetX Définir ou retourner la distance horizontale de l'ombre au shape.
shadowOffsetY Définir ou retourner la distance verticale de l'ombre au shape.
Méthode Description
createLinearGradient() Créer un dégradé linéaire (utilisé pour le contenu du canvas).
createPattern() Répéter l'élément spécifié dans la direction spécifiée.
createRadialGradient() Créer un dégradé radial/circulaire (utilisé pour le contenu du canvas).
addColorStop() Définir les couleurs et les positions d'arrêt dans l'objet de dégradé.

Style de ligne

Attribut Description
lineCap Définir ou retourner le style de couverture des extrémités de la ligne.
lineJoin Définir ou retourner le type d'angle créé lors de l'intersection des lignes.
lineWidth Définir ou retourner la largeur de ligne actuelle.
miterLimit Définir ou retourner la longueur maximale de l'angle de saut.

Rectangle

Méthode Description
rect() Créer un rectangle.
fillRect() Dessiner un rectangle 'rempli'.
strokeRect() Dessiner un rectangle (sans remplissage).
clearRect() Effacer les pixels spécifiés dans le rectangle donné.

Chemin

Méthode Description
fill() Remplir le graphique actuel (chemin).
stroke() Effectivement dessiner le chemin défini.
beginPath() Commencer un chemin ou réinitialiser le chemin actuel.
moveTo() Déplacer le chemin vers le point spécifié sur le canvas sans créer de ligne.
closePath() Créer un chemin de retour au point de départ à partir du point actuel.
lineTo() Ajouter un nouveau point et créer une ligne de ce point au dernier point spécifié sur le canvas.
clip() Couper une zone de forme et de taille arbitraires à partir du canvas d'origine.
quadraticCurveTo() Créer une courbe Bézier en deux points.
bezierCurveTo() Créer une courbe Bézier en trois points.
arc() Créer un arc/courbe (utilisé pour créer un cercle ou une partie de cercle).
arcTo() Créer un arc/courbe entre deux tangentes.
isPointInPath() Retourne true si le point spécifié est dans le chemin actuel, sinon retourne false.

Transformation

Méthode Description
scale() Agrandir ou réduire le graphique actuel.
rotate() Tourner le graphique actuel.
translate() Remapper la position (0,0) sur le canvas.
transform() Remplacer la matrice de transformation actuelle du dessin.
setTransform() Réinitialiser la transformation actuelle à la matrice unitaire. Ensuite, exécuter transform().

Texte

Attribut Description
font Définir ou retourner les propriétés de police actuelles du contenu du texte.
textAlign Définir ou retourner le mode d'alignement actuel du contenu du texte.
textBaseline Définit ou retourne la ligne de base actuelle utilisée pour le dessin du texte.
Méthode Description
fillText() Tracez du texte 'rempli' sur le canvas.
strokeText() Tracez du texte sur le canvas (sans remplissage).
measureText() Retourne un objet contenant la largeur du texte spécifié.

Dessin d'image

Méthode Description
drawImage() Tracez une image, un canvas ou une vidéo sur le canvas.

Opérations sur les pixels

Attribut Description
width Retourne la largeur de l'objet ImageData.
height Retourne la hauteur de l'objet ImageData.
data Retourne un objet contenant les données d'image de l'objet ImageData spécifié.
Méthode Description
createImageData() Crée un nouvel objet ImageData vide.
getImageData() Retourne un objet ImageData, qui copie les données de pixels d'un rectangle spécifié sur le canvas.
putImageData() Remet les données d'image ( provenant de l'objet ImageData spécifié) sur le canvas.

Synthèse

Attribut Description
globalAlpha Définit ou retourne la valeur actuelle d'alpha ou de transparence du dessin.
globalCompositeOperation Définit ou retourne la manière dont l'image nouvelle est dessinée sur l'image existante.

Autres

Méthode Description
save() Sauvegarde l'état actuel du contexte.
restore() Retourne l'état et les propriétés de l'état de chemin précédemment sauvegardé.
createEvent()
getContext()
toDataURL()

Attributs et événements standards

L'objet canvas supporte à la fois les attributs et les événements standardsAttributetÉvénement.

Pages associées

Tutoriel HTML :Canvas HTML5

Tutoriel image HTML :Tutoriel Canvas HTML

Manuel de référence HTML :Balise <canvas> HTML