IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Vote des utilisateurs
0 
0 
D�tails
Licence : Libre
Mise en ligne le 27 ao�t 2013
Plate-formes : Linux, Mac, Windows
Langue : Fran�ais
R�f�renc� dans
Navigation

Conversion hexad�cimal en RVB et RVB en hexad�cimal

Bonjour,

Ayant vu une source en Perl concernant la conversion hexad�cimal - RVB (RGB en anglais), je propose le m�me travail mais en langage Python.

Avatar de josmiley
Membre exp�riment� https://www.developpez.com
Le 27/08/2013 � 1:59
Quelles contraintes ?

Code : S�lectionner tout
1
2
3
4
5
6
7
8
9
10
def get_rvb(hexa):
    if not 0<=hexa<=0xffffff: raise ValueError, "valeur inadaptee"
    return hexa>>16, (hexa>>8)&0xff, hexa&0xff

def get_hex(r,v,b):
    h = (r<<16) + (v<<8) + b
    try:
        if (r,v,b) == get_rvb(h): return h
    except:
        raise ValueError, "valeurs inadaptees"
Avatar de fred1599
Expert �minent https://www.developpez.com
Le 27/08/2013 � 9:20
Quelles contraintes ?
Salut Josmiley,

Juste le param�tre hexa doit �tre une chaine de caract�res de la forme #ffffff .

Pas le choix de virer le di�se.

Bonne journ�e
Avatar de josmiley
Membre exp�riment� https://www.developpez.com
Le 27/08/2013 � 11:15
ok, je corrige. On peut passer soit un str #ffffff, soit un int, c'est bon ?

Code : S�lectionner tout
1
2
3
4
5
6
7
8
9
10
11
def get_rvb(hexa):
    if type(hexa) != int: hexa = int(hexa.replace('#','0x'),16)
    if not 0<=hexa<=0xffffff: raise ValueError, "valeur inadaptee"
    return hexa>>16, (hexa>>8)&0xff, hexa&0xff

def get_hex(r,v,b):
    h = (r<<16) + (v<<8) + b
    try:
        if (r,v,b) == get_rvb(h): return h
    except:
        raise ValueError, "valeurs inadaptees"
Avatar de fred1599
Expert �minent https://www.developpez.com
Le 27/08/2013 � 11:44
Oui Josmiley on peut, c'est juste un code basic ne prenant pas en compte les erreurs d'entr�es, d'ailleurs je pense que ces fonctions seront plac�es dans une classe par exemple.

Dans ce cas, tu formates pour rendre un param�tre adapt� � cette fonction.
J'aime bien la technique du d�calage de bits, c'est souvent le plus efficace en terme de performance

Bonne journ�e...
Developpez.com d�cline toute responsabilit� quant � l'utilisation des diff�rents �l�ments t�l�charg�s.