Attribuer une couleur à un chiffre
Fermé
Megazor
-
13 janv. 2022 à 17:45
Megazor Messages postés 2 Date d'inscription jeudi 7 juin 2018 Statut Membre Dernière intervention 14 janvier 2022 - 14 janv. 2022 à 17:44
Megazor Messages postés 2 Date d'inscription jeudi 7 juin 2018 Statut Membre Dernière intervention 14 janvier 2022 - 14 janv. 2022 à 17:44
A voir également:
- Attribuer une couleur à un chiffre
- Excel trier par ordre croissant chiffre - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Excel cellule couleur si condition texte - Guide
- La boite a couleur - Télécharger - Divers Photo & Graphisme
- Attribuer une sonnerie à un contact - Guide
2 réponses
jee pee
Messages postés
40903
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
7 mars 2025
9 556
Modifié le 13 janv. 2022 à 19:05
Modifié le 13 janv. 2022 à 19:05
Bonjour,
Bienvenu dans la programmation.
HTML+CSS dédiés aux sites web ne constituent pas l'environnement idéal pour faire de la programmation.
La programmation est basée si une algorithmie qui utilise des variables, des boucles, des tests, des fonctions ... qui n'existent pas en HTML.
HTML+CSS ne permet que de faire un site web statique (*).
Dès que l'on veut quelque chose de dynamique on va adjoindre à HTML+CSS le langage PHP.
Alors si tu veux t’intéresser à la programmation, il serait préférable de commencer par un autre langage (python, C, ...).
SI ton but c'est de faire des sites web alors tu peux commencer par HTML+CSS. Puis quand tu auras les bases regarder PHP.
(*) si tu suis un cours HTML5 tu pourras faire des choses un peu différentes comme des animations, des jeux : https://www.fun-mooc.fr/fr/cours/introduction-a-html5-animations-et-jeux/ mais il est préférable d'avoir des notions de programmation
Bienvenu dans la programmation.
HTML+CSS dédiés aux sites web ne constituent pas l'environnement idéal pour faire de la programmation.
La programmation est basée si une algorithmie qui utilise des variables, des boucles, des tests, des fonctions ... qui n'existent pas en HTML.
HTML+CSS ne permet que de faire un site web statique (*).
Dès que l'on veut quelque chose de dynamique on va adjoindre à HTML+CSS le langage PHP.
Alors si tu veux t’intéresser à la programmation, il serait préférable de commencer par un autre langage (python, C, ...).
SI ton but c'est de faire des sites web alors tu peux commencer par HTML+CSS. Puis quand tu auras les bases regarder PHP.
(*) si tu suis un cours HTML5 tu pourras faire des choses un peu différentes comme des animations, des jeux : https://www.fun-mooc.fr/fr/cours/introduction-a-html5-animations-et-jeux/ mais il est préférable d'avoir des notions de programmation
[Dal]
Messages postés
6204
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
27 février 2025
1 100
Modifié le 14 janv. 2022 à 11:23
Modifié le 14 janv. 2022 à 11:23
Salut Megazor,
Par exemple, tu peux faire ceci en html5 avec la balise canvas et du JavaScript où tu utilises les données d'un tableau d'entiers contenant tes valeurs numériques pour créer une image.
Note qu'en programmation on commence à compter à partir de 0 en général. Donc plutôt que "1 = Rouge / 2 = Vert / 3 = Bleu", j'ai choisi les valeurs 0, 1 et 2 respectivement.
Cela donne ceci :

En gros, cela fonctionne ainsi :
https://developer.mozilla.org/fr/docs/Web/API/HTMLCanvasElement/getContext
https://developer.mozilla.org/fr/docs/Web/API/CanvasRenderingContext2D/getImageData
https://developer.mozilla.org/fr/docs/Web/API/ImageData
https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/putImageData
Dans le code en lignes 50 à 52, on décide quelles valeurs RVB sont attribuées aux codes 0, 1, 2 (j'ai choisi respectivement rouge, vert et bleu, mais tu pourrais choisir d'autres couleurs en faisant varier les valeurs des 3 couleurs élémentaires définissant la valeur de couleur de chaque pixel.
https://www.w3schools.com/colors/colors_picker.asp
Pour faire ce code, je me suis inspiré de celui-ci : https://plnkr.co/edit/mfNyalsAR2MWkccr?preview
On utilise rarement canvas pour dessiner des pixels individuels (ce n'est pas très efficace). Tu as des interfaces pour dessiner des lignes, des formes, du texte... qui sont optimisées et prévues pour. C'est avec cela que sont faits les jeux html5 qui remplacent les jeux en Flash.
https://www.w3schools.com/html/html5_canvas.asp
https://openclassrooms.com/fr/courses/4810241-utilisez-html5-pour-linterface-utilisateur/4979216-utilisez-la-balise-canvas
Dal
Par exemple, tu peux faire ceci en html5 avec la balise canvas et du JavaScript où tu utilises les données d'un tableau d'entiers contenant tes valeurs numériques pour créer une image.
Note qu'en programmation on commence à compter à partir de 0 en général. Donc plutôt que "1 = Rouge / 2 = Vert / 3 = Bleu", j'ai choisi les valeurs 0, 1 et 2 respectivement.
<!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8"> <title>Image</title> <link rel="stylesheet" href="monstyle.css"> </head> <body> <h1>Image</h1> <p>Image composée de points rouges, verts et bleus</p> <canvas id="image" width="60" height="20"> Votre navigateur ne supporte pas la balise html5 "canvas" </canvas> <script> var canvas = document.getElementById('image'); var tableau = [0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2, 2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1, 1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0, 0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2, 2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1, 1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0, 0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2, 2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1, 1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0, 0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2, 2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1, 1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0, 0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2, 2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1, 1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0, 0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2, 2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1, 1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0, 2,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2, 1,2,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1]; ctx = canvas.getContext('2d'); largeur = canvas.width; hauteur = canvas.height; ctx.clearRect(0, 0, largeur, hauteur); var id = ctx.getImageData(0, 0, largeur, hauteur); var pixels = id.data; var r, v, b; var idx = 0; for (var i = 0; i < largeur * hauteur * 4; i += 4) { var code = tableau[idx++]; switch (code) { case 0: r = 255; v = 0; b = 0; break; case 1: r = 0; v = 255; b = 0; break; case 2: r = 0; v = 0; b = 255; break; default: r = 255; v = 255; b = 255; break; } pixels[i] = r; pixels[i + 1] = v; pixels[i + 2] = b; pixels[i + 3] = 255; } ctx.putImageData(id, 0, 0); </script> <p>Il faut zoomer pour apercevoir les points :-)</p> </body> </html>
Cela donne ceci :

En gros, cela fonctionne ainsi :
- pour le canvas créé, tu peux récupérer un contexte te permettant de dessiner dessus en 2d avec getContext('2d')
- avec getImageData tu peux ensuite récupérer un objet ImageData te permettant d'accéder aux données de l'image dans une zone mémoire que tu obtiens par le champ .data
- ce champ .data de l'objet ImageData contient un tableau à une dimension d'une taille de largeur * hauteur * 4 dans lequel les valeurs RVBA de chaque pixel sont accessibles à la suite, sous la forme d'entiers de 0 à 255 représentant l'intensité de la couleur élémentaire composant la couleur du pixel (le A est pour l'opacité)
- une boucle parcourt les données de l'image en y insérant la couleur souhaitée
- une fois la boucle terminée, les changements sont appliqués au canvas avec putImageData
https://developer.mozilla.org/fr/docs/Web/API/HTMLCanvasElement/getContext
https://developer.mozilla.org/fr/docs/Web/API/CanvasRenderingContext2D/getImageData
https://developer.mozilla.org/fr/docs/Web/API/ImageData
https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/putImageData
Dans le code en lignes 50 à 52, on décide quelles valeurs RVB sont attribuées aux codes 0, 1, 2 (j'ai choisi respectivement rouge, vert et bleu, mais tu pourrais choisir d'autres couleurs en faisant varier les valeurs des 3 couleurs élémentaires définissant la valeur de couleur de chaque pixel.
https://www.w3schools.com/colors/colors_picker.asp
Pour faire ce code, je me suis inspiré de celui-ci : https://plnkr.co/edit/mfNyalsAR2MWkccr?preview
On utilise rarement canvas pour dessiner des pixels individuels (ce n'est pas très efficace). Tu as des interfaces pour dessiner des lignes, des formes, du texte... qui sont optimisées et prévues pour. C'est avec cela que sont faits les jeux html5 qui remplacent les jeux en Flash.
https://www.w3schools.com/html/html5_canvas.asp
https://openclassrooms.com/fr/courses/4810241-utilisez-html5-pour-linterface-utilisateur/4979216-utilisez-la-balise-canvas
Dal
13 janv. 2022 à 21:33
sans aller sur PHP qu iest un langage exécuté côté serveur et nécessite une infrastructure, du même côté client du HTML et CSS qui s'exécutent sur un simple navigateur, il y a le langage JavaScript qui fait de même, ce qui permettra de rester dans l'environnement de programmation et d'exécution dont Megazor est déjà familier et qui permet de mettre en oeuvre l'algorithmie dont tu parles qui utilise des variables, des boucles, des tests, des fonctions et qui est un complément naturel à ce que Megazor a déjà commencé à apprendre.
D'ailleurs, le MOOC sur HTML5 sur lequel tu pointes couvre HTML, CSS et JavaScript.
14 janv. 2022 à 17:44
Je vous remercie pour vos réponses, ainsi que vos précisions apportées !
Alors oui j'ai bien conscience que la programmation en tant que telle n'est pas axée sur le HTML + CSS qui est plus pour du "statique", mais ne sachant pas exactement par quoi commencer, je me suis dis que cela me donnerait des bases !
Je suis en train de trouver des tutos pour apprendre le JS ce qui me permettra, je l'espère, d'avoir des bases plus "solides".
En tout cas, encore un grand merci à vous d'avoir pris la peine de me répondre !