Récupération code couleur par un click souris

Résolu
Cjvg Messages postés 330 Date d'inscription mercredi 6 décembre 2000 Statut Membre Dernière intervention 26 octobre 2017 - 25 août 2013 à 19:37
cs_ShayW Messages postés 3258 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 - 29 août 2013 à 13:03
Bonjour,

J'ai développé un logiciel de géographie qui affiche entre autre la carte de France avec des départements de couleurs différentes. En cliquant sur un département, le programme récupère la valeur de la couleur qui est ensuite utilisée pour récupérer et afficher des renseignements sur le département cliqué.

Exemple: Si l'utilisateur clique sur la partie Rouge de la carte, le programme récupère la valeur 255 qui est ensuite utilisée pour rechercher les informations sur ce département.

Ce logiciel est utilisé et tourne correctement sur différents ordinateurs XP, Vista et Windows 7.

J'ai eu un problème avec mon PC est j'ai du restaurer le système. Depuis ce jour, mon logiciel ne fonctionne plus. J'ai l'impression que les couleurs affichées sont différentes de celle d'avant la restauration.

Pour un département qui avait avant le code couleur 6737049 le projet détecte aujourd'hui une valeur 6541212.

Je pense que cela vient de mon écran qui doit afficher des couleurs légèrement différentes (non visible à l'oeil nu).

Avez vous une idée sur la question et une suggestion à me faire.

Par avance Merci.


--

15 réponses

cs_ShayW Messages postés 3258 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 55
25 août 2013 à 20:43
Salut

pas compris une chose si c'est toi qui definit les couleurs pour ta
carte ex rouge pour le dep 93 rgb(255,0,0)
ce n'est plus rouge c.ad ce n'est plus FF0000 en hexa que tu obtiens ?
0
NHenry Messages postés 15032 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 26 janvier 2023 156
25 août 2013 à 21:44
Bonsoir,

Passer de la couleur 63CF9C à 66CC99 ou l'inverse n'est pas trop grave.

Si tu utilises un JPEG comme source, ce n'est pas étonnant, la compression passe par une approximation des couleurs.
0
Cjvg Messages postés 330 Date d'inscription mercredi 6 décembre 2000 Statut Membre Dernière intervention 26 octobre 2017
26 août 2013 à 10:26
Pour info: 255 idem à ---> rgb(255,0,0) ) idem à ---> FF0000

--------------------------------------------------------------------

Passer de la couleur 63CF9C à 66CC99 ou l'inverse n'est pas trop grave ?......... Ce n'est pas grave pour un programme qui récupère le code couleur pour réaliser un traitement particulier

If Couleur Lue sur l'écran = 6737049 alors je lance un traitement
If Couleur Lue sur l'écran = 65256 alors je lance un autre traitement
Etc..........


--------------------------------------------------------------------

-Ce logiciel est utilisé et tourne correctement sur différents ordinateurs XP, Vista et Windows 7

Soyez gentil de lire les messages avant de poster une réponse
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 222
26 août 2013 à 11:37
Bonjour,
Je décomposerais dans ce cas en valeurs R,G,B et déterminerais mes actions en fonction de fourchettes de proportions.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Le Pivert Messages postés 7870 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 23 janvier 2023 137
26 août 2013 à 11:42
Bonjour ,

Ce sujet n'a rien avoir avec la programmation puisqu'il fonctionne très bien sur les autres pc. Il faudrait voir les réglages couleurs de ton écran. Mais tu ne nous dit pas sur quel système tu es: XP, Vista et Windows 7!
0
Cjvg Messages postés 330 Date d'inscription mercredi 6 décembre 2000 Statut Membre Dernière intervention 26 octobre 2017
26 août 2013 à 15:56
Bonjour,

Le code Couleur lu par le programme sur le PC Windows XP qui ne semble plus fonctionner correctement est: RGB(156,207,99) .

Je viens de faire deux autres essais avec le même programme en cliquant sur la même Couleur:

- Sur un autre PC XP: Le code lu est RGB(153,204,102)
- Sur un PC Vista: Le code lu est également RGB(153,204,102)

Par avance Merci pour votre aide
0
NHenry Messages postés 15032 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 26 janvier 2023 156
26 août 2013 à 18:23
Bonjour,

As-tu essayer de vérifier en faisant un screen shot et de comparer la couleur obtenue ?
0
Cjvg Messages postés 330 Date d'inscription mercredi 6 décembre 2000 Statut Membre Dernière intervention 26 octobre 2017
28 août 2013 à 09:53
Bonjour,

Comme je n'avais pas la réponse à mon problème sur ce site, j'ai posé la même question sur Developpez.Net.

Monsieur XylonAkau a eu la gentillesse de me répondre et de me donner la solution à mon problème.

Un paramètre d'affichage à été modifié à mon insu. La correction suivante à été appliquée:

- Panneau de Configuration - Affichage - Paramètres - Qualité Couleur - Remplaçé 16 Bits par 32 Bits.

Encore bravo à Monsieur XylonAkau sur Developpez.Net.

Mille Merci.








--
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 222
28 août 2013 à 11:07
Le problème fondamental n'est par pour autant réglé, car :
si cette appli doit être distribuée :
- la configuration pourra être à nouveau différente sur le PC d'exécution
- on ne change jamais la configuration de l'utilisateur.

0
Cjvg Messages postés 330 Date d'inscription mercredi 6 décembre 2000 Statut Membre Dernière intervention 26 octobre 2017
28 août 2013 à 11:19
Bonjour Monsieur UcFoutu,

Qu'avez vous à me proposer pour regler ce problème.

Votre solution me sera très précieuse

Par avance Merci

Cordialement.

--
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 222
28 août 2013 à 13:29
je l'ai dit plus haut : considérer les proportions de R, G et B (ce sera toujours vrai)
0
Cjvg Messages postés 330 Date d'inscription mercredi 6 décembre 2000 Statut Membre Dernière intervention 26 octobre 2017
Modifié par Cjvg le 28/08/2013 à 15:30
Bonjour,

Je suis désolé, mais je ne sais pas comment considérer les proportions de RGB.

Dans mes programmes j'ai les instructions:

Couleur = Picture1.Point(X, Y)
if Couleur = 16777215 then Call .........

Sauf erreur de ma part je pense que le traitement sera identique avec l' instructions ci-dessous:

if Picture1.Point(X, Y) = rgb(187,783,199) then Call ........

J'ai un petit outil qui me permet d'afficher toutes la palette de couleur et, pour chacune d'elle d'afficher le code couleur
numérique et RGB. --> 16777215 est identique à rgb(187,783,199).

------------------------------------------------------------------

Il y a certainement quelque chose que je ne comprends pas.

Auriez vous l'amabilité de préciser votre réponse (si vous avez un exemple simple de deux instructions ce serait plus que parfait).

Par avance Merci.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 222
28 août 2013 à 16:29
rgb(187,783,199)
n'existe pas. Aucune composante ne saurait excéder 255 !
Voici comment on extrait les composantes RGB d'une couleur dont on a la valeur en Long (exemple) :

Dim R As Integer, G As Integer, B As Integer, coul As Long
   coul = 12767201

    R = &HFF& And coul
    G = (&HFF00& And coul) \ 256
    B = (&HFF0000 And coul) \ 65536
    
    MsgBox "R = " & R & vbCrLf & "G = " & G & vbCrLf & "B = " & B & vbCrLf


A partir de ces valeurs absolues, ont détermine les valeurs relatives (la composition, donc, de la couleur). Et on travaille ensuite sur des fourchettes de ces valeurs relatives (arithmétique)
Si entre xR% et yR% de rouge et entre xB% et yB% de vert et entre xB% et yB% de bleu, alors ...
Ce n'est que de l'arithmétique.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 222
Modifié par ucfoutu le 28/08/2013 à 16:48
J'ajoute qu'il est plus que probable que ces mésaventures résultent du fait que tu lis les couleurs affichées (d'où l'intervention de la configuration) au lieu de lire celles correspondant à un fichier (coordonnées dans le fichier) qui, elles, restent toujours identiques.
La conception serait alors à reconsidérer.

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
Cjvg Messages postés 330 Date d'inscription mercredi 6 décembre 2000 Statut Membre Dernière intervention 26 octobre 2017
Modifié par Cjvg le 28/08/2013 à 16:51
Je vais faire des essais.

Merci pour votre réponse.


rgb(187,783,199) Erreur de ma part cela est évident.
0
cs_ShayW Messages postés 3258 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 55
28 août 2013 à 17:08
Bonjour Ucfoutu

après avoir testé c'est plutot
R = (&HFF0000 And coul) \ 65536
      G = (&HFF00& And coul) \ 256
       B = &HFF& And coul
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 222
28 août 2013 à 19:32
Bonjour, ShayW
Non ...
Pars de coul = RGB(255,0,0) et constate ton erreur.
0
cs_ShayW Messages postés 3258 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 55
28 août 2013 à 20:06
je ne vois pas l'erreur
pour rgb(255,0,0)
coul = 16711680
selon ton code j'obtiens
r = 0
g = 0
b = 255
à moins que je n'ai pas compris ce que je dois obtenir
0
NHenry Messages postés 15032 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 26 janvier 2023 156
28 août 2013 à 20:15
Tu dois obtenir R 255, G 0, B 0

Toujours dans l'ordre RGB.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 222
28 août 2013 à 21:43
Non, ShayW ...
16711680 n'est pas RGB(255,0,0), mais RGB(0,0,255) (et c'est le bleu) !
RGB(255,0,0) =>> coul = 255 (et c'est le rouge)
0
cs_ShayW Messages postés 3258 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 55
28 août 2013 à 22:21
plus rien compris
http://www.colorcombos.com/colors/FF0000
avec la calculatrice si je convertis FF0000 en dec > 16711680
FF0000 ce n'est pas la couleur rouge ?
0
Rejoignez-nous