Bonjour,
je n'arrive pas a coder une fonction en c me permettant de passer de trois int represantants successivement le rouge le vert et le bleu (RGB) a un int representant la couleur en haxadecimal ...
Quelq'un peut-il m'aider ?
Merci a vous.
Bonjour,
je n'arrive pas a coder une fonction en c me permettant de passer de trois int represantants successivement le rouge le vert et le bleu (RGB) a un int representant la couleur en haxadecimal ...
Quelq'un peut-il m'aider ?
Merci a vous.
La représentation hexadécimale sert justement à mettre en évidence les trois composantes qui, en général, tiennent chacune sur un octet. Par exemple :
« #fedc89 », soit :
Bleu : fe = 254 / 255 ;
Vert : dc = 220 / 255 ;
Rouge : 89 = 137 / 255.
Pour mettre chaque composante à sa place dans un seul entier, le plus simple est d'utiliser l'opérateur de décalage « << » et le OU logique bit à bit « | ».
Comme il se peut qu'il s'agisse d'un devoir scolaire, je reste volontairement évasif. Essaie de poster un morceau de code en tenant compte de ces conseils.
Merci pour cette reponse rapide.
J'ai reussi grace a tes precieuses indications .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Le code : int get_color(int r, int g, int b) { int result; result = 0; result += r << 16; result += g << 8; result += b; return (result); }
Enfin, évite le "#" dans ta réprésentation, ça rappelle trop le format utilisé en HTML (qui lui, liste le rouge en poids fort)
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager