Page 1 sur 1

Les couleurs...[RESOLUE]

Publié : mar. 22/avr./2008 12:19
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:

Publié : mar. 22/avr./2008 12:27
par Le psychopathe
Couleur = Point(x, y)

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

; voilà ton RGB

Publié : mar. 22/avr./2008 12:33
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$

Publié : mar. 22/avr./2008 13:11
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+

Publié : mar. 22/avr./2008 13:42
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 :)

Publié : mar. 22/avr./2008 13:56
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 :)

Re: Les couleurs...

Publié : mar. 22/avr./2008 16:23
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