versiones guia español actualizar python colors rgb

python - guia - qgis español



Conversión de valor hexadecimal a RGB en Python (3)

Trabajando con la respuesta de Jeremy aquí: Convirtiendo el color hexadecimal a RGB y viceversa , pude obtener un programa de Python para convertir códigos hexadecimales de color preestablecidos (ejemplo # B4FBB8), sin embargo, desde la perspectiva del usuario final, no podemos pedir a la gente que edite codificar y ejecutar desde allí. ¿Cómo se puede pedir al usuario que ingrese un valor hexadecimal y luego hacer que salte un valor RGB desde allí?

Aquí está el código que tengo hasta ahora:

def hex_to_rgb(value): value = value.lstrip(''#'') lv = len(value) return tuple(int(value[i:i + lv // 3], 16) for i in range(0, lv, lv // 3)) def rgb_to_hex(rgb): return ''#%02x%02x%02x'' % rgb hex_to_rgb("#ffffff") # ==> (255, 255, 255) hex_to_rgb("#ffffffffffff") # ==> (65535, 65535, 65535) rgb_to_hex((255, 255, 255)) # ==> ''#ffffff'' rgb_to_hex((65535, 65535, 65535)) # ==> ''#ffffffffffff'' print(''Please enter your colour hex'') hex == input("") print(''Calculating...'') print(hex_to_rgb(hex()))

Usando la línea de print(hex_to_rgb(''#B4FBB8'')) puedo hacer que salte el valor RGB correcto que es (180, 251, 184)

Probablemente sea super simple, todavía soy bastante rudo con Python.


¡Hay dos pequeños errores aquí!

hex == input("")

Debiera ser:

user_hex = input("")

Desea asignar la salida de input() a hex , no verificar la comparación. Además, como se menciona en los comentarios (@koukouviou), no sobrescribas el hex , en lugar de eso, user_hex algo como user_hex .

También:

print(hex_to_rgb(hex()))

Debiera ser:

print(hex_to_rgb(user_hex))

Desea utilizar el valor de hex, no el método que se puede __call__ del tipo ( __call__ ).


Creo que esto hace lo que buscas:

h = input(''Enter hex: '').lstrip(''#'') print(''RGB ='', tuple(int(h[i:i+2], 16) for i in (0, 2 ,4)))

(Lo anterior fue escrito para Python 3)

Ejecución de la muestra:

Enter hex: #B4FBB8 RGB = (180, 251, 184)

Escribiendo en un archivo

Para escribir en un archivo con el identificador de fhandle mientras conserva el formato:

fhandle.write(''RGB = {}''.format( tuple(int(h[i:i+2], 16) for i in (0, 2 ,4)) ))


Una opción perezosa: el paquete webcolors tiene una función hex_to_rgb .