Objet Canvas du DOM HTML
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 permet de 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 l'é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>
Comment accéder à l'élément Canvas
Vous pouvez accéder à l'élément <canvas> en utilisant 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 n'importe quel graphique.
La méthode getContextMenu() 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);
En utilisant la 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);
Vous pouvez également créer un nouvel élément <canvas> à l'aide de la méthode document.createElement() 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);
Chemin
Les méthodes courantes pour dessiner sur le canevas sont :
- Commencer un chemin - beginPath()
- Déplacer à un point - moveTo()
- Dessiner dans le chemin - lineTo()
- 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();
Couleur, style et ombre
Attribut | Description |
---|---|
fillStyle | Définir ou retourner la couleur, le dégradé ou le motif utilisés pour le remplissage du dessin. |
strokeStyle | Définir ou retourner la couleur, la dégradé 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 à la forme. |
shadowOffsetY | Définir ou retourner la distance verticale de l'ombre à la forme. |
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 la jonction de deux lignes. |
lineWidth | Définir ou retourner la largeur de ligne actuelle. |
miterLimit | Définir ou retourner la longueur maximale des sauts. |
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() | En fait, dessiner le chemin que vous avez défini. |
beginPath() | Commencer un chemin ou réinitialiser le chemin actuel. |
moveTo() | Déplacer le chemin à un point spécifié sur le canvas sans créer de ligne. |
closePath() | Créer un chemin qui retourne 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 de la peinture originale. |
quadraticCurveTo() | Créer une courbe de Bézier en deux points. |
bezierCurveTo() | Créer une courbe de Bézier en trois points. |
arc() | Créer un arc/courbe (utilisé pour créer un cercle ou une partie d'un 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() | Re-mapper la position (0,0) sur le canvas. |
transform() | Remplacer la matrice de transformation actuelle de la décoration. |
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 dessiner le texte. |
Méthode | Description |
---|---|
fillText() | Dessine du texte 'rempli' sur le canvas. |
strokeText() | Dessine 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() | Dessine 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() | Place les données d'image (venant 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 attributs de l'itinéraire sauvegardé précédemment. |
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 d'image HTML :Tutoriel Canvas HTML
Manuel de référence HTML :Balise <canvas> HTML