Qu'est ce que le HTML 5 ?
HTML qui a pour abréviation HyperText Markup Language se traduit par langage de balisage hypertexte. Il permet de structurer les pages web avec des balises. Ce langage est en perpétuel évolution. HTML 5 est la dernière version du HTML qui est en cours de standardisation.
Cette dernière version apporte de nombreuses nouveautées. Les principaux navigateurs web se sont eux aussi mises à jour : bientôt aussi pour Internet Explorer avec sa 9ème version. Désormais avec la balise audio ou vidéo, il est possible d’intégrer un son ou une vidéo dans la page web et cela très simplement. Il sera possible aussi de stocker des données temporairement dans le navigateur en mode offline. La liste est longue, je ne peux pas continuer à lister toutes les nouveautés.
Ce qui retient particulièrement mon attention est la balise canvas : il est possible de créer un graphique, une image ou une animation interactive dans l’élément canvas. C’est l’une des spécifités la plus intéressante, on peut dire qu'elle est concurrence avec Adobe Flash et Microsoft Silverlight qui nécessite l’installation d’un plugin dans le navigateur. Il est clair que l’expérience utilisateur sur le web sera accrue et c’est tant mieux comme ca. Dans la suite de cette article je m’intéresse uniquement à la balise canvas.
Approfondissement sur la balise CANVAS
Un canvas est un élément rectangulaire par défaut 300px/150px pouvant être redimensionné. À l’intérieur de ce canvas on manipule du JavaScript pour représenter toute sorte de graphique ou image. Pour le moment la balise canvas n'est supportée que dans les dernières versions de Firefox, Safari, Chrome, Opera et Internet Explorer 9.
<canvas></canvas>
est la balise à ajouter dans sa page html. La représentation d’un graphique se fait en deux dimensions. Chaque point a une coordonnée (x,y) à définir. L’origine du repère est (0,0) qui n'est pas au centre du canvas mais en haut à gauche. Pour x=5, y=3 : on a x qui se déplace de gauche à droite et y de haut en bas.
Comment créer un trait vertical, horizontal, diagonal ?
Trait vertical
Il suffit d’insérer la balise <canvas></canvas>
dans le body de la page web. On peut spécifier la largeur (width) et la hauteur (height). On ajoute aussi un identifiant ID au canvas.
<body> <canvas id="trait_verti" width="400" height="300"></canvas> </body>
<body> <div class="grid "> <h1>Trait vertical</h1> <canvas id="trait_verti" width="400" height="300"></canvas> </div> </body>
<style type="text/css"> canvas { border: 3px solid #444; } .grid { float:left; width:400px; margin:0 5px; } .grid h1 {font-size:25px;text-align:center;} .grid p {text-align:left;} </style>
<script type="text/javascript"> function traitvertical() { var objet = document.getElementById('trait_verti'); var dessin = objet.getContext('2d'); dessin.beginPath(); dessin.moveTo(150, 50); dessin.lineTo(150,200); dessin.strokeStyle ='orange'; dessin.stroke(); dessin.closePath(); } window.addEventListener("load", traitvertical, false); </script>
Trait horizontal
La fonction écrite en JavaScript :
function traithorizontal() { var objet = document.getElementById('trait_hori'); var dessin = objet.getContext('2d'); dessin.beginPath(); dessin.moveTo(50, 150); dessin.lineTo(300,150); dessin.strokeStyle ='orange'; dessin.stroke(); dessin.closePath(); }
Trait diagonal
La fonction écrite en JavaScript :
function traitdiagonal() { var objet = document.getElementById('trait_diag'); var dessin = objet.getContext('2d'); dessin.beginPath(); dessin.moveTo(50, 100); dessin.lineTo(300,250); dessin.strokeStyle ='orange'; dessin.stroke(); dessin.closePath(); }
Quelques exemples de traces
Méthodes présentes dans le code :
Transformation d’une image couleur RGBA en une image modifiée
L’image couleur a quatre composantes dont trois composantes couleurs rouge, vert, bleu et une composante alpha. C'est-à-dire que chaque pixel a quatre valeurs comprises entre 0 et 255.
Rouge : (largeur*y + x)*4
Vert : (largeur*y + x)*4 + 1
Bleu : (largeur*y +x)*4 + 2
Alpha : (largeur*y + x)*4 + 3
À l’aide de la commande getImageData, on obtient les valeurs de chacun des pixels de l'image. Nous parcourons ensuite tous les pixels avec une double boucle for car l'image et le canvas sont à deux dimensions. On soustrait les valeurs des pixels des composantes RGB (Red, Green, Blue) par des valeurs choisies. Les valeurs des pixels RGB doivent être comprises entre 0 et 255. Si une des valeurs est inférieure à zéro alors cette valeur vaut zéro. Après le traitement on met à jours notre canvas avec la méthode putImageData et on dessine la nouvelle image avec la commande drawImage. Enfin on n’oublie pas d’indiquer l’image couleur de départ avec l’instruction .src = « image.jpg ».
Vous avez des questions sur l'article ou autre n’hésitez pas.
Référence
https://developer.mozilla.org/en/HTML/Canvas
Autres articles à lire
Diagramme circulaire, diagramme en secteur circulaire, camembert avec l'élément CANVAS de l'API HTML 5
Diagramme rectangulaire, diagramme en bâtons, histogramme avec l'élément CANVAS de l'API HTML 5