Tom's Guide > Forum > Programmation > GTK+ et code hexadecimal des couleurs

GTK+ et code hexadecimal des couleurs

Forum Programmation : GTK+ et code hexadecimal des couleurs

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

bonjour a tous,

Je suis en train d adapter un programme de generation d images de syntheses precedemment fait en libX en Gtk, pour le rendre plus convivial etc...

Seulement je suis confronté a un problement majeur : impossible de trouver comment afficher un pixel (point) dans un Widget DrawingArea selon le code hexadecimal des couleurs... Existe t il donc une fonction qui se charge du travail ou doit t on proceder d une autre maniere? j ai bien vu que les fichiers rc permettaient de changer de couleurs, mais ceci n est pas du tout suffisant pour un tel programme...

Voila merci de vos reponses,

Ps => je precise que se programme est ecris en C;

++

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

J'avais fait la même chose mais en win32API.

je connais pas très bien le gtk, mais en regardant la doc, j'ai vu:
gdk_gc_set_foreground (...) pour mettre la couleur et gdk_draw_point (...) pour afficher ton point.

gdk_gc_set_foreground() prend un :

Code :
  1. typedef struct {
  2.   guint32 pixel;
  3.   guint16 red;
  4.   guint16 green;
  5.   guint16 blue;
  6. } GdkColor;


en paramètre
donc si ton nombre est en hexa et sous 24 ou 32bits:

Code :
  1. red = (hexa & 0xFF0000) >> 16;
  2. green = (hexa & 0x00FF00) >> 8;
  3. blue = hexa & 0x0000FF;

Répondre à CRicky

salut,

merci de ta reponse elle m'a beaucoup aide,

Je precise seulement que les composantes rgb dans la struct GdkColor sont :

Code :
  1. red = ((hexa & 0xFF0000) >> 16) * 256;
  2. green = ((hexa & 0x00FF00) >> 8) * 256;
  3. blue = (hexa & 0x0000FF) * 256;



Encore Merci ^^
++

Répondre à iron95

Ok, je viens de revoir la doc et ça varie effectivement de 0x0000 (0) à 0xFFFF (65535).

Bref, multiplier par 256, c'est multiplier par 2^8 soit faire un décalage à gauche de 8 bits:

Code :
  1. red = ((hexa & 0xFF0000) >> 16) * 256;
  2. green = ((hexa & 0x00FF00) >> 8) * 256;
  3. blue = (hexa & 0x0000FF) * 256;



<=>

Code :
  1. red = ((hexa & 0xFF0000) >> 16) << 8;
  2. green = ((hexa & 0x00FF00) >> 8) << 8;
  3. blue = (hexa & 0x0000FF) << 8;



<=>

Code :
  1. red = (hexa & 0xFF0000) >> 8;
  2. green = hexa & 0x00FF00;
  3. blue = (hexa & 0x0000FF) << 8;



Répondre à CRicky
Tom's Guide > Forum > Programmation > GTK+ et code hexadecimal des couleurs
Aller à :

Il y a 2514 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens