Tableau de couleur php - PHP - Programmation
Marsh Posté le 01-11-2016 à 22:49:24
Résumons :
tu veux faire un tableau qui affiche ttes les couleurs entre 0 et #FFF ?
Alors plusieurs questions :
1) #FFF c'est quoi pour toi ? #0F0F0F, #F0F0F0 ou #FFFFFF ?
2) pourquoi faire un modulo de $i alors qu'il te suffit de compter par pas de 3 : for ($i = 0; $i < $limite; $i += 3) ? Là, 66% de ta boucle sert à rien.
3) pourquoi ne pas concatener des chaines pour representer tes couleurs ?
Un $R, un $G et un $B que tu ferais évoluer par pas de 3. Et du coup "dechex" sera plus utile
Marsh Posté le 02-11-2016 à 08:33:41
Bonjour,
1) Pour moi #FFF signifie que l'on va jusqu'à 4095 (FFF en hexadécimal).
2) C'est vrai que je n'avais pas pensé à cette solution, j'ai modifier ma boucle et cela fonctionne également.
3) Je n'ai pas vraiment compris mais avec ma dernière modification mon tableau affiche les valeurs de #0 à #ffc en une seule colonne. Je ne comprends pas comment je peux lui dire d'afficher trois chiffres à chaque fois (#000, #003 ...). De plus mon tableau ne contient qu'une seule colonne alors que j'aimerais qu'il y en ai plusieurs.
Pour information le contenu de mes cellules me permettra d'afficher la couleur correspondante (ex : #000 correspond à la couleur noire)
Voici mon code modifié :
Code :
|
Marsh Posté le 02-11-2016 à 10:44:50
1) ok, mais attention, 0xfff correspond à rgb(0,15,255), soit pas de rouge, un peu de vert et un max de bleu
2) ok
3) en conservant ton idée, tu peux tout simplement faire des masques binaires pour récuperer les composantes de tes couleurs (et donc on en revient à l'histoire avec le point 1) :
Code :
|
Sinon tu peux aussi te servir directement des composantes couleurs séparées, en les incrémentant au fur et à mesure, et en utilisant des décalages logiques :
Code :
|
Il y a surement moyen de faire bcp plus simple
Marsh Posté le 02-11-2016 à 11:08:38
Pourrais-tu m'expliquer le premier code (il à l'air plus simple à comprendre que le deuxième ^^) car je l'ai mis avant ma boucle for mais rien ne se passe ?
Ensuite si je prends le deuxième code le tableau est sur une colonne, comment dois-je faire pour avoir plusieurs colonne ?
Merci d'avance pour tes réponses
Marsh Posté le 02-11-2016 à 11:40:17
Par rapport à mon message précédent, voici mon code :
Code :
|
Marsh Posté le 02-11-2016 à 22:00:55
J'ai pas très bien saisie le but, mais voilà un truc qui devrait fonctionner. A adapter si besoin :
Code :
|
Marsh Posté le 02-11-2016 à 22:26:06
Merci de ta réponse, je vais essayer de comprendre le code et de l'adapter car pour l'instant ça marche pas ^^'
En tout cas merci du temps passé sur le sujet
Marsh Posté le 02-11-2016 à 22:28:08
càd ? ca donne pas le résultat que tu veux ou il y a une erreur ?
Marsh Posté le 02-11-2016 à 22:29:17
Ça ne m'affiche rien du tout en faite, donc je regarde où est le problème
Marsh Posté le 02-11-2016 à 22:40:28
tu as bien sûr appellé la fonction ?
genre :
function table ($limite)
{
// ...
}
table (4095);
Marsh Posté le 02-11-2016 à 22:41:33
Oui j'ai fais un autre fichier .php où j'appelle ma fonction ^^
Marsh Posté le 02-11-2016 à 22:48:32
tu as un exemple en live ?
car bon, t'imagines bien qu'avant de poster ce code, il a été testé, et ca affiche un tableau, avec des couleurs et tout ^^
Tu as une erreur ou rien du tout n'est renvoyé ?
Marsh Posté le 02-11-2016 à 22:51:29
Oui je me doute que tu as testé avant ^^
J'ai une page blanche en faite mais je verrais ça demain tête reposée
Marsh Posté le 03-11-2016 à 10:00:31
Bon je viens de réessayer et en faite le code fait planter mon pc ce qui n'est pas normal ^^
Petite question à quoi sert la boucle if et pourquoi on fait un return avant de fermer le tableau ?
Marsh Posté le 03-11-2016 à 11:47:56
il sert à quitter la fonction si la limite est atteinte. En effet il pourrait etre placé APRES la fermeture de la table.
Etant donné qu'on calcule des couleurs, je fais des boucles de 256 * 256 * 256 (16 millions ...), tu peux les remplacer par 16 pour monter jusqu'à F plutot que FF
Du coup, étant donné qu'on parle de couleurs codées sur 24 bits, la multiplication que tu vois traduit des composantes de 8 bits (256) vers 24.
Pour le plantage, c'est louche, si ca plante car la pagehtml générée est trop grande, tu as un soucis ailleurs (car php rend la main si sa mémoire allouée est dépassée).
Marsh Posté le 03-11-2016 à 14:20:45
Bon j'ai modifié quelques trucs pour afficher la couleur dans la cellule par exemple, ça fonctionne nickel merci
Dernière petite question, sais-tu comment limiter le nombre de colonnes car là ça fait vraiment un tableau immense en largeur
Marsh Posté le 03-11-2016 à 16:56:40
ben dans le code, tu vois qu'il compte de 0 à 255 par pas de 3, ce qui fait 85 colonnes (255 / 3).
Si tu en veux moins, tu peux augmenter le pas ou limiter la plage de couleur (16 au lieu de 255, donc F au lieu de FF)
Marsh Posté le 07-11-2016 à 21:01:30
Ok merci beaucoup de ton aide, je reviens vers toi si j'ai d'autres questions
Marsh Posté le 14-11-2016 à 19:32:37
Bonjour,
Un petit soucis de dernière minute, j'ai modifié le code pour faire quelque chose de compréhensible de mon point de vue. Le problème est que mon tableau ne s'arrête pas à FFF, il continue de remplir la ligne.
Comment puis-je faire pour que mon tableau s'arrête à FFF et ne mette rien ou des cases vides à côté ?
Voici mon code :
Code :
|
Marsh Posté le 15-11-2016 à 23:08:43
Ton $i va jusqu'à 4096 (0xFFF) et ensuite tu rajoutes lui ton $j, qui va lui jusqu'à 24, donc forcément tu vas dépasser.
Sans vouloir refaire ton code, tu peux faire rajouter une condition qui sort de ta boucle interne et termine le tableau "proprement" :
Code :
|
Au passage, tu as une variable $k et $K : confusion assurée.
Marsh Posté le 16-11-2016 à 10:21:56
Merci beaucoup pour ta réponse, j'ai réussi en faisant un break
Marsh Posté le 16-11-2016 à 11:36:36
OUAIS ALORS pour les codes couleurs vous êtes dans le faux les mecs
mais #FFF c'est #FFFFFF tout comme #123 c'est #112233
Donc faudrait revoir un peu le tableau
Marsh Posté le 16-11-2016 à 12:00:53
Pour info moi j'ai codé ça en JS :
http://codepen.io/arnogues/pen/XNjeqx
JE génère un tableau de nombre après pour la génération du HTML je me suis pas fait chier
Marsh Posté le 16-11-2016 à 21:53:55
gatsu35 a écrit : OUAIS ALORS pour les codes couleurs vous êtes dans le faux les mecs |
Reli depuis le début, j'avais déjà soulevé ce point.
Mais bon, il veut aller jusqu'à FFF, pas 0F0F0F, ni FFFFFF. Nan, jusqu'à 000FFF, donc voilà
Perso avant de me lancer la dedans j'aurais creusé pour voir comment fonctionne le système de couleur.
Ou alors partir sur du CSS à la cool avec les couleurs spécifiées sous la forme de "rgb(rrr,ggg,bbb)" par exemple.
Bref
Marsh Posté le 23-12-2016 à 14:50:45
Attention les 2 lignes suivantes sont redondantes :
$tableau = "<table>"; /* Création d'un tableau */
$tableau .= "<table border = 1 align = center>";
Marsh Posté le 31-10-2016 à 12:03:45
Bonjour à tous,
J'aimerais afficher dans un tableau html toutes les couleurs comprises entre #000 et #FFF par pas de trois avec la valeur hexadécimale correspondante (#000, #003 ...).
Etant novice en php j'ai commencé par réaliser un tableau qui serait sur 4 colonnes et x lignes. Pour l'instant mon tableau affiche des nombre entiers qui s'incrémentent 3 par 3.
Mon problème est que maintenant j'essaye d'afficher mes valeurs en #000, #003 .. J'ai essayé d'utiliser la fonction dechex mais cela m'affiche mes valeurs en hexadécimal.
Comment faire pour afficher ce type de valeur dans mon tableau ?
Voici mon code php :
Merci d'avance pour vos réponses