PHP

Como descobrir se uma cor hexadecimal é escura ou clara com PHP

23 de maio de 2020

Como descobrir se uma cor hexadecimal é escura ou clara com PHP

Neste artigo veremos como descobrir se uma cor hexadecimal é clara ou escura de uma maneira bem interessante, utilizando apenas PHP puro!

verificar se hexadecimal é clara ou escura php capa

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

Subscribe
Notify of
guest
0 Comentários
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x