1 de junho de 2007

Script que calcula cor complementar em PHP

Design, PHP | 4 Comentários »
por Ricardo José Corrêa

Há algum tempo atrás, vi-me na necessidade de criar um “gerador de header” para os sites de um cliente aqui da agência. Como estes sites seriam produções realizadas por pessoas que não seriam necessariamente designers, tive que facilitar as coisas.

No ato, a pessoa informava o nome do site, o tamanho do header e a cor predominante – e foi no ponto da cor que o problema apareceu – como uma pessoa não-designer escolheria uma cor que combinasse com o fundo e ao mesmo tempo desse contraste?

A cor a ser escolhida (ou pelo menos sugerida) deveria ser a cor complementar, ou seja, a cor diretamente inversa a ela.

Observando um pouco, percebi que as cores branco (em RGB 255,255,255) e o preto (em RGB 0,0,0) tinham a diferença de 255 tonalidades em cada uma das cores que forma o RGB. Então constatei que, subtraindo de qualquer cor, os “255” de cada uma dessas tonalidades, eu obteria a cor complementar.

Ai, programação vai, programação vem e criei o seguinte script, que também pode ser conferido em ação aqui.

Quero deixar claro que não inventei a roda, mas essa é uma informação desconhecida por muitos profissionais da área e que deve ser compartilhada.

cor_complementar.php

if (!$corInvertida){
$R = substr($corOriginal,1,2);
$G = substr($corOriginal,3,2);
$B = substr($corOriginal,5,2);
 
$R = hexdec($R);
$G = hexdec($G);
$B = hexdec($B);
 
$valor255="255";
 
$iR=($R-$valor255)*-1;
$iG=($G-$valor255)*-1;
$iB=($B-$valor255)*-1;
 
$R=dechex($R);
$G=dechex($G);
$B=dechex($B);
 
if(strlen($R) < 2){ $R="0".$R; }
if(strlen($G) < 2){	$G="0".$G; }
if(strlen($B) < 2){ $B="0".$B; }
 
$iR=dechex($iR);
$iG=dechex($iG);
$iB=dechex($iB);
 
if(strlen($iR) < 2){ $iR="0".$iR; }
if(strlen($iG) < 2){ $iG="0".$iG; }
if(strlen($iB) < 2){ $iB="0".$iB; }
 
$corInvertida = "#".$iR.$iG.$iB;
$corInvertida = strtoupper($corInvertida);
}
 
echo "A cor complementar de ".$corOriginal."é ".$corInvertida."."; ?>

Sem posts relacionados.


Você pode deixar um comentário, ou trackback de seu próprio site.

4 comentários para “Script que calcula cor complementar em PHP”

  1. Thomas falou:

    Rii !
    F-E-N-O-M-E-N-A-L essa ferramenta meu !!!

    mas não mostra pra muita gente não !
    tive alguns trabalhos na faculdade, que eram para descobrir a cor complementar… com isso ai.. acabou o trabalho ! rsrs…

    BOA GAROTO ! continue assim ! heheh

  2. Ricardo José Corrêa falou:

    Já descobri como calcular o brilho da cor… alguém saber como calcular o contraste? Logo vou fazer uma aplicação legal para sugestão de cor.

  3. danilo falou:

    Eu queria saber se tem como fazer um formulário ou script para as pessoas que entrarem no meu site deixassemum anexo, por exemplo uma imagem.

    Me mande a resposta por e-mail.
    Valeu!

  4. bruninlemos falou:

    eae galera…
    pra que este trabalho todo ein?
    vai uma maneira bem mais facil ai,
    que eu percebi,
    quem gostar fala ai ;)

    é só substituir a letra da cor! ve ai:
    quando for:

    F 0
    C 3
    9 6

    espero simplificar o problema! falou ;)

Deixe um comentário