Voici une fonction plus complète pour gérer les situations dans lesquelles vous pouvez avoir des valeurs RVB dans la plage [0,1] ou la gamme [0,255] .
def RGBtoHex(vals, rgbtype=1):
"""Converts RGB values in a variety of formats to Hex values.
@param vals An RGB/RGBA tuple
@param rgbtype Valid valus are:
1 - Inputs are in the range 0 to 1
256 - Inputs are in the range 0 to 255
@return A hex string in the form '#RRGGBB' or '#RRGGBBAA'
"""
if len(vals)!=3 and len(vals)!=4:
raise Exception("RGB or RGBA inputs to RGBtoHex must have three or four elements!")
if rgbtype!=1 and rgbtype!=256:
raise Exception("rgbtype must be 1 or 256!")
#Convert from 0-1 RGB/RGBA to 0-255 RGB/RGBA
if rgbtype==1:
vals = [255*x for x in vals]
#Ensure values are rounded integers, convert to hex, and concatenate
return '#' + ''.join(['{:02X}'.format(int(round(x))) for x in vals])
print(RGBtoHex((0.1,0.3, 1)))
print(RGBtoHex((0.8,0.5, 0)))
print(RGBtoHex(( 3, 20,147), rgbtype=256))
print(RGBtoHex(( 3, 20,147,43), rgbtype=256))
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