Cor RGB ou hexadecimal

RGB é um modelo de cores que define a cor pela combinação de vermelho, verde e azul. Uma tupla RGB é composta por três números que especificam a intensidade de cada cor. Como usa 8 bits (0 ou 1) para cada cor, cada intensidade pode ser transformada em um número hexadecimal com no máximo dois dígitos.

Existem 256 tons possíveis para cada cor, pois "11111111" (ou o hexadecimal "ff") corresponde ao decimal 255, além do número 000. A combinação dos 256 tons possíveis para as três cores primárias resulta em 256 elevado ao cubo, ou mais de 16 milhões de cores possíveis.

Escreva uma função que receba uma cor em RGB ou hexadecimal e retorne o formato oposto. Se receber os três inteiros em uma tupla RGB, ela deverá retornar uma string com a notação hexadecimal equivalente, precedida por um símbolo de cerquilha (#). Se receber uma string em hexadecimal, deverá retornar uma tupla com os três inteiros correspondentes ao RGB.

Exemplos

rgb_or_hex(150, 50, 76) ➞ "#96324c"
# 150 is hex 96, 50 is hex 32 and 76 is hex 4c.

rgb_or_hex("#303749") ➞ (48, 55, 73)
# 30 is dec 48, 37 is dec 55 and 49 is dec 73.

rgb_or_hex(170, 14, 0) ➞ "#aa0e00"
# 170 is hex aa, 14 is hex e and 0 is hex 0.

Observações

  • Lembre-se de que as três cores devem ser números hexadecimais de dois dígitos. Portanto, para o valor 14 de verde, o valor hexadecimal deve ser 0e, em vez de apenas e.
  • Tente usar métodos de formatação ou preenchimento para minimizar as instruções condicionais.

Curiosidade

O preto é definido como a ausência de cor, ou RGB(0,0,0), enquanto o branco é definido como todas as cores em intensidade máxima, ou RGB(255,255,255). Quando todas as cores têm a mesma intensidade e algum valor entre 0 e 255, a cor resultante é um cinza mais escuro ou mais claro.