103 votes

Conversion d'un tuple de couleur RVB en un code à six chiffres

Je dois convertir (0, 128, 64) à quelque chose comme ceci "#008040" . Je ne sais pas comment appeler ce dernier, ce qui rend la recherche difficile.

1 votes

Voir la réponse précédente de SO stackoverflow.com/questions/214359/ --Parmi les trois réponses, celle qui a reçu le plus de votes comprend un extrait de code python pour faire ce que je crois que vous recherchez.

3 votes

Le terme que vous recherchez est Hex Triplet. fr.wikipedia.org/wiki/Hex_color#Hex_triplet

0 votes

Pour une question plus générale, avec des réponses bien meilleures qu'ici : stackoverflow.com/a/57197866/624066

2voto

MikeyB Points 793
def RGB(red,green,blue): return '#%02x%02x%02x' % (red,green,blue)

background = RGB(0, 128, 64)

Je sais que les jeux de mots en Python ne sont pas forcément bien vus. Mais il y a des moments où je ne peux pas résister à l'envie de profiter de ce que le parseur Python permet. C'est la même réponse que la solution de Dietrich Epp (la meilleure), mais emballée dans une seule ligne de fonction. Donc, merci Dietrich !

Je l'utilise maintenant avec tkinter :-)

1voto

CeaselessQuokka Points 11

Vous pouvez également utiliser des opérateurs de type "bit wise", ce qui est assez efficace, même si je doute que vous vous préoccupiez de l'efficacité avec quelque chose comme ça. C'est aussi relativement propre. Notez qu'il n'y a pas de bridage ou de vérification des limites. Ceci est supporté depuis au moins Python 2.7.17 .

hex(r << 16 | g << 8 | b)

Et de le changer pour qu'il commence par un # que tu peux faire :

"#" + hex(243 << 16 | 103 << 8 | 67)[2:]

1voto

Trying2Learn Points 11

Il existe un paquet appelé webcolors. https://github.com/ubernostrum/webcolors

Il dispose d'une méthode webcolors.rgb_to_hex

>>> import webcolors
>>> webcolors.rgb_to_hex((12,232,23))
'#0ce817'

0voto

reema dass Points 29
''.join('%02x'%i for i in input)

peut être utilisé pour la conversion hexagonale d'un nombre int

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X