Como descobrir se uma cor hexadecimal é escura ou clara?
Para determinar se uma cor hexadecimal é escura ou clara, você pode usar a fórmula de Percepção da Luminosidade (YIQ). Essa fórmula é baseada em como os olhos humanos percebem cores.
A fórmula YIQ converte uma cor RGB (Red-Green-Blue) em uma representação de luminosidade chamada Y. A luminosidade varia de 0 a 1, onde 0 é preto e 1 é branco. Valores entre 0 e 0,5 são considerados cores escuras, enquanto valores acima de 0,5 são considerados cores claras.
Aqui está um exemplo em Python de como você pode implementar isso:
def is_color_dark(hex_color):
# Converte a cor hexadecimal para RGB
r = int(hex_color[1:3], 16)
g = int(hex_color[3:5], 16)
b = int(hex_color[5:7], 16)
# Calcula a luminosidade usando a fórmula YIQ
y = (r * 299 + g * 587 + b * 114) / 1000
# Verifica se a cor é escura ou clara
if y <= 0.5:
return True
else:
return False
# Exemplo de uso
color1 = "#000000" # Preto - considerado escuro
color2 = "#FFFFFF" # Branco - considerado claro
color3 = "#808080" # Cinza médio - considerado claro
print(is_color_dark(color1)) # True
print(is_color_dark(color2)) # False
print(is_color_dark(color3)) # False
Neste exemplo, a função is_color_dark
recebe a cor hexadecimal como um argumento e retorna True
se for uma cor escura e False
se for uma cor clara.