J'ai une couleur en héxadécimal.. du style
0x123456
et heu.. j'aimerai récuperer l'héxa de chaque couleur..
0x120x340x56
comment faire? avec un "et" ou un "ou" logique?
quel masque appliquer?
du style :
0x123456 & 0x001100 = 0x003400 = 0x34 (c un exemple hein.. je me rend bien compte que c'est débile)
Message édité par Mr yvele le 28-05-2003 à 15:17:39
Publicité
Posté le 28-05-2003 à 15:16:03
VisualC++
J'va y penser ...
Posté le 28-05-2003 à 15:21:02
Code :
MASKRED = 0xFF0000
MASKGREEN = 0x00FF00
MASKBLUE = 0x0000FF
red = (TACOULEUR & MASKRED >> 16) & 0x0000FF
green = (TACOULEUR & MASKGREEN >> 8) & 0x0000FF
blue = (TACOULEUR & MASKBLUE >> 0) & 0x0000FF
Edit : & et pas && comme on me l a fait remarquer
Message édité par VisualC++ le 28-05-2003 à 15:25:40
Tetragrammaton IHVH
dieu unique => pensée unique
Posté le 28-05-2003 à 15:21:56
Tu veux faire un truc dans ce genre, je suppose
Code :
x = 0x123456;
b = x & 0xFF;
g = (x & 0xFF00) >> 8;
r = (x & 0xFF0000) >> 16;
---------------
"Dieu a exploité tous nos complexes d'infériorité, en commençant par notre incapacité de croire à notre propre divinité." - Emil Michel Cioran
---------------
"Dieu a exploité tous nos complexes d'infériorité, en commençant par notre incapacité de croire à notre propre divinité." - Emil Michel Cioran
Mr yvele
yvele n'est plus.
Posté le 28-05-2003 à 15:24:47
exactement.. mais heu, je suis en action script..
je devrai plutot passer par un masque binaire?.. heu.. j'ai dit une connerie la, nan?
0x123456 & 0b000011110000
VisualC++
J'va y penser ...
Posté le 28-05-2003 à 15:24:56
oui y en a 1 en trop desole
Mr yvele
yvele n'est plus.
Posté le 28-05-2003 à 15:26:15
Ah nan c pareil.. chui con..
le probleme c'est qu'en actionscript, je peu pas faire de >> pour décaler..
je devrai plutot passer par un masque binaire?.. heu.. j'ai dit une connerie la, nan?
0x123456 & 0b000011110000
0b000011110000 = 0xF0, c'est pareil
---------------
"Dieu a exploité tous nos complexes d'infériorité, en commençant par notre incapacité de croire à notre propre divinité." - Emil Michel Cioran
Ah nan c pareil.. chui con..
le probleme c'est qu'en actionscript, je peu pas faire de >> pour décaler..
Au pire, divise par la puissance de 2 correspondante
Mais c'est quoi ce langage qui n'a même pas de décalage ?
---------------
"Dieu a exploité tous nos complexes d'infériorité, en commençant par notre incapacité de croire à notre propre divinité." - Emil Michel Cioran
Mr yvele
yvele n'est plus.
Posté le 28-05-2003 à 15:27:51
oui je me suis planté je voulais mettre :
0b1111111100000000
mais bon.. tfaçon ça reviens au meme.. jpeu pas décaler..
t vraiment sur de ton coup ? parce que la c abusé quand meme
Mr yvele
yvele n'est plus.
Posté le 28-05-2003 à 15:29:41
putain, a moins que je convertisse en string, puis que je découpe ma string, et enfin, je pourrai avoir mes 3 valeurs héxa, pour enfin, pouvoir les convertir en entier!
putain, a moins que je convertisse en string, puis que je découpe ma string, et enfin, je pourrai avoir mes 3 valeurs héxa, pour enfin, pouvoir les convertir en entier!
ouèèè!!
... mais c bidon comme solution..
non, comme dit plus haut, tu fais une division par la puissance de deux qui va bien
putain, a moins que je convertisse en string, puis que je découpe ma string, et enfin, je pourrai avoir mes 3 valeurs héxa, pour enfin, pouvoir les convertir en entier!
ouèèè!!
... mais c bidon comme solution..
je t'ai dit : au lieu de ">> 8" tu fais "/ 256" et ">> 16" remplacé par "/ 65536". C'est quand même moins bidon.
---------------
"Dieu a exploité tous nos complexes d'infériorité, en commençant par notre incapacité de croire à notre propre divinité." - Emil Michel Cioran
merde... raaaahhhh jsuis un caca boudin!!!!!!!!
c'est bon, ça existe...
>> (décalage droit au niveau du bit)
mon boolay
Mr yvele
yvele n'est plus.
Posté le 28-05-2003 à 15:35:30
ouè hé ho c'est bon hein.. ça peux arriver hein..
à certains plus qu'a d'autres.. mais bon..
EDIT: merci les gars quand meme!
Message édité par Mr yvele le 28-05-2003 à 15:36:05
chrisbk
-
Posté le 28-05-2003 à 15:36:55
puisqu'on est a faire les cons dans les bits, Ki ki dit mieux que ca pour faire un alpha-blending 24bits ?
(code un peu plus propre mis de cote)
(MMX interdit )
Code :
int alphaBlending(int rgb, int rgb2, unsignedchar tAlpha)
{
int tmpbr = (rgb&0xFF00FF);
int tmpg = (rgb&0xFF00);
int tmp2 = rgb2 & 0xFF00FF;
int tmp3 = ((tmp2 - tmpbr) * tAlpha)>>8;
int br = tmpbr+tmp3;
br &=0xFF00FF;
tmp2 = (rgb2 & 0xFF00);
tmp3 = ((tmp2 - tmpg) * tAlpha)>>8;
int g = (tmpg + tmp3)&0xFF00;
br |= g;
return br;
}
me demande si en 16bits y'a pas moy de tout faire en une mult