#1 Tue 12 February 2008 22:27
- maldan
- Juste Inscrit !
- Date d'inscription: 15 Mar 2006
- Messages: 3
calculer les codes couleurs rvb dans une table
Bonjour,
J'ai une couche polygone avec une analyse thématique par catégories.
Je souhaiterais calculer dans la table de cette couche, dans trois champs ROUGE VERT BLEU, les codes RVB qui correspondent aux couleurs de cette analyse thématique.
Est-ce qu'il existe un bout de code à charger dans la calculette de champs pour rapatrier dans ma table ces codes ?
Merci !
Hors ligne
#2 Wed 13 February 2008 08:33
- ChristopheV
- Membre
- Lieu: Ajaccio
- Date d'inscription: 7 Sep 2005
- Messages: 3197
- Site web
Re: calculer les codes couleurs rvb dans une table
Bonjour,
Un bout de code VB pour convertir un entier long représentant une couleur en trois champs RGB (en général on dit Green et pas Vert en informatique)
Code:
Public Sub MyGetRVB(ByVal lColorValue As Long, _ ByRef r As Integer, _ ByRef v As Integer, _ ByRef b As Integer) b = lColorValue \ 65536 v = lColorValue \ 256 And &HFF r = lColorValue And &HFF End Sub
Après charge aux spécialistes arcview de l'intégrer.
A+
Christophe
Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close
Hors ligne
#3 Wed 13 February 2008 10:05
- maldan
- Juste Inscrit !
- Date d'inscription: 15 Mar 2006
- Messages: 3
Re: calculer les codes couleurs rvb dans une table
Merci,
Est-ce à dire que les couleurs d'une analyse thématique dans ArcMap sont codées sous la forme d'un entier qu'il faut décrypter avec le code ci dessus pour récupérer l'information sous la forme de 3 valeurs RGB ?
En fait, sur le forum d'ESRI* j'ai trouvé une macro qui génère une analyse thématique en fonction des valeurs RED GREEN BLUE contenues dans la table de la couche poly. Moi, c'est exactement le contraire que je souhaiterais faire...
J'ai lancé des recherches un peu partout mais sans trouver encore de solution...
Si vous pouviez faire avancer mon chmilblik...
* http://forums.esri.com/Thread.asp?c=93& … 747#555759
Hors ligne
#4 Wed 13 February 2008 14:06
- ChristopheV
- Membre
- Lieu: Ajaccio
- Date d'inscription: 7 Sep 2005
- Messages: 3197
- Site web
Re: calculer les codes couleurs rvb dans une table
Bonjour
Est-ce à dire que les couleurs d'une analyse thématique dans ArcMap sont codées sous la forme d'un entier qu'il faut décrypter avec le code ci dessus pour récupérer l'information sous la forme de 3 valeurs RGB ?
Je vous ais donné une réponse globale. Sous windows les couleurs sont toujours gérées sous forme d'un entier long, pour pouvoir passer de cet entier long à sa décomposition (RGB) il faut effectuer l'opération mentionnée dans mon précédent post. Chaque composante est codée sur un octet, et l'entier long contient les valeurs suivante : rien pour l'octet de poids fort, ensuite le bleu, puis le vert puis le rouge.
A+
Christophe
Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close
Hors ligne
#5 Wed 13 February 2008 14:59
- ChristopheV
- Membre
- Lieu: Ajaccio
- Date d'inscription: 7 Sep 2005
- Messages: 3197
- Site web
Re: calculer les codes couleurs rvb dans une table
Re,
Je ne connais pas arcview dans le détail (même néophyte) mais après un petit tour ici
il me semble que la couleur est gérée au travers de l'interface IrgbColor pour tous les objets qui en ont une non ?
Donc le code que je vous ais mentionné est donc inutil, quelque soit x vous récupérerez toujours un objet Irgbcolor.
Désolé.
A+
Christophe
Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close
Hors ligne
#6 Wed 13 February 2008 16:09
- maldan
- Juste Inscrit !
- Date d'inscription: 15 Mar 2006
- Messages: 3
Re: calculer les codes couleurs rvb dans une table
Merci quand même...
biensûr il y a toujours la solution qui consisterait à noter sur un bout de papier, et pour chaque symbole, les valeurs RVB (enfin RGB) dans le sélecteur de couleur puis de les saisir dans la table en faisant des sélections par attribut + "calculer les valeurs" mais j'aurais préféré faire tourner une moulinette, ça eut été plus pro.
Si à tout hasard quelqu'un(e) a la solution je suis preneur...
Hors ligne