Les couleurs...[RESOLUE]

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Neosis
Messages : 113
Inscription : dim. 24/févr./2008 20:11

Les couleurs...[RESOLUE]

Message par Neosis »

Bon jours tous le monde j'espère qu'il y a pas trop de monde qui est partie en vacances car j'ai une question :)

J'utilise " Point(x,y) " pour obtenir la valeur d'une couleur affiché a la position x,y. Le soucis c'est que la fonction Point me renvoie une valeur numérique (Exemple: 9865812) et moi je voudrait convertir cette valeur en HexadécimalBGR. Je tourne en rond et je ne voie pas très bien comment mis prendre. :roll:
Dernière modification par Neosis le mer. 23/avr./2008 17:01, modifié 1 fois.
Avatar de l’utilisateur
Le psychopathe
Messages : 764
Inscription : jeu. 03/mars/2005 19:23

Message par Le psychopathe »

Couleur = Point(x, y)

rouge = Red(Couleur)
vert = Green(Couleur)
bleu = Blue(Couleur)

; voilà ton RGB
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Suffit de lire l'aide.
Renvoie dans la variable 'Couleur' la couleur affichée à la position x,y de la surface de dessin en cours. La valeur retournée dans Couleur est un nombre codé sur 24 bits qui contient la combinaison des trois couleurs de base (Rouge, Vert, Bleu) codées chacune sur 8 bits (valeur 0 à 255).

La couleur peut être facilement décomposée en valeur RVB à l'aide des commandes Red(), Green() et Blue().

Code : Tout sélectionner

Couleur = 9865812
Rouge$ = Hex(Red(Couleur)) : Vert$  = Hex(Green(Couleur)) : Bleu$  = Hex(Blue(Couleur))

CouleurBGR$ = "#"+RSet(Bleu$, 2, "0")+ RSet(Vert$, 2, "0") + RSet(Rouge$, 2, "0") : Debug CouleurBGR$
Stefou
Messages : 234
Inscription : jeu. 18/janv./2007 14:08

Message par Stefou »

Salut Neosis

Suivant ce que tu as besoins, il est souvent interessant d'aprendre à travailler avec cette valeur, plutôt que les 3 composantes RGB.

Comme toi au début je travaillais avec RGB qui me parlait plus qu'un couleur 9865812, mais en pratique, une variable permet de stocker une couleur, au lieu de 3 variables.

a+
Avatar de l’utilisateur
case
Messages : 1546
Inscription : lun. 10/sept./2007 11:13

Message par case »

le nombre renvoyé est en fait un entier sur 32 bit, 8bit pour chaque valeur de la couleur Alpha Bleu Vert Rouge


%AAAAAAAABBBBBBBBVVVVVVVVRRRRRRRR

si je me souviens bien :)
Neosis
Messages : 113
Inscription : dim. 24/févr./2008 20:11

Message par Neosis »

Le psychopathe: Merci mais tu as mal compris ce n'est pas ce que je voulais^^

Chris: merci c'est ce que je voulais, en faite c'est tous bête mais j'avais pas vu qu'il y avait la fonction "Hex()" pour faire la conversion j'ai du mal regardé, il faut que je me repose moi ^^'

Stef: je me suis peut être du mal exprimé dans ma question... ce n'était pas vraiment le RGB qui m'intéressez mais "l'hexadécimal BGR"

merci pour vos réponses rapides :)
Avatar de l’utilisateur
SPH
Messages : 4949
Inscription : mer. 09/nov./2005 9:53

Re: Les couleurs...

Message par SPH »

Neosis a écrit :Bon jours tous le monde j'espère qu'il y a pas trop de monde qui est partie en vacances car j'ai une question :)

J'utilise " Point(x,y) " pour obtenir la valeur d'une couleur affiché a la position x,y. Le soucis c'est que la fonction Point me renvoie une valeur numérique (Exemple: 9865812) et moi je voudrait convertir cette valeur en HexadécimalBGR. Je tourne en rond et je ne voie pas très bien comment mis prendre. :roll:

Code : Tout sélectionner

a=RGB(1,2,3); en fait, toi, tu feras a = Point (x,y)

a$=Hex(65536*Blue(a)+256*Green(a)+Red(a)) ; ici, j'ai resperté ton codage

Debug a$
; resultat en Hex : 30201
; resultat en decimal : 197121
; donc NORMALEMENT : 65536*3 + 256*2 + 1
; BINGO, c'est ca
Répondre