Cjvg
Messages postés330Date d'inscriptionmercredi 6 décembre 2000StatutMembreDernière intervention26 octobre 2017
-
25 août 2013 à 19:37
cs_ShayW
Messages postés3253Date d'inscriptionjeudi 26 novembre 2009StatutMembreDerniè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.
cs_ShayW
Messages postés3253Date d'inscriptionjeudi 26 novembre 2009StatutMembreDernière intervention 3 décembre 201957 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 ?
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..........
cs_Le Pivert
Messages postés7903Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention11 mars 2024137 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!
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 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.
Cjvg
Messages postés330Date d'inscriptionmercredi 6 décembre 2000StatutMembreDernière intervention26 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).
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 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.
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.
Cjvg
Messages postés330Date d'inscriptionmercredi 6 décembre 2000StatutMembreDernière intervention26 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.
cs_ShayW
Messages postés3253Date d'inscriptionjeudi 26 novembre 2009StatutMembreDernière intervention 3 décembre 201957 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
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 28 août 2013 à 19:32
Bonjour, ShayW
Non ...
Pars de coul = RGB(255,0,0) et constate ton erreur.
cs_ShayW
Messages postés3253Date d'inscriptionjeudi 26 novembre 2009StatutMembreDernière intervention 3 décembre 201957 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
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 28 août 2013 à 20:15
Tu dois obtenir R 255, G 0, B 0
Toujours dans l'ordre RGB.
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 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)
cs_ShayW
Messages postés3253Date d'inscriptionjeudi 26 novembre 2009StatutMembreDernière intervention 3 décembre 201957 28 août 2013 à 22:21