Neste artigo veremos como descobrir se uma cor hexadecimal é clara ou escura de uma maneira bem interessante, utilizando apenas PHP puro!
Fala programador(a), beleza? Bora aprender mais sobre PHP!
Para checar se uma cor é clara ou escura, podemos utilizar uma fórmula que é disponibilizada pelo W3C, órgão de padronização da Web
A fórmula é esta:
((Red value X 299) + (Green value X 587) + (Blue value X 114)) / 1000
O resultado esta operação é um valor de 0 a 255, que é a luminosidade de uma cor
Perceba que esta fórmula utiliza os valores em RGB, então precisamos converter o Hexadecimal neste valor
Para esta ação o PHP também tem funções específicas, então não será um problema
Lembrando que uma cor é considerada clara, quando o valor desta fórmula é maior que 128
Então vamos a um exemplo prático:
<?php $cor = '#FFFFFF'; $red = hexdec(substr($cor, 1, 2)); $green = hexdec(substr($cor, 3, 2)); $blue = hexdec(substr($cor, 5, 2)); $resultado = (($red * 299) + ($green * 587) + ($blue * 114)) / 1000; echo $resultado;
Aqui estamos analisando a cor branca (#FFFFFF) e recebemos na variável $resultado o valor máximo de luminosidade, que é de 255
Ou seja, esta cor é considerada clara
Perceba também que utilizamos substring para pegar os valores que precisamos para converter em RGB, onde as duas primeiras casas do hexa representam o R, as duas do meio o G e as finais o A
Bem legal e fácil né? 😀
Conclusão
Neste artigo vimos como descobrir se uma cor hexadecimal é escura ou clara com PHP
Nós utilizamos uma fórmula que é provida pelo W3C, onde se o resultado for maior que 128, a cor será considerada clara
Além disso, como ela solicita os valores da cor em RGB, nós transformamos o hexadecimal em RGB antes de aplicar a fórmula com a função hexdec do PHP
Confira também nosso catálogo de cursos gratuitos, com aulas semanais no YouTube