Script que calcula cor complementar em PHP

1 de junho, 2007 por Ricardo José Corrêa
1 Star2 Stars3 Stars4 Stars5 Stars ( Não há classificações ainda)
Loading ... Loading ...

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."."; ?>

Technorati Tags: , , , , ,

Compartilhe e aproveite:
  • del.icio.us
  • Technorati
  • Digg
  • Facebook
  • Google
  • Reddit
  • Furl
  • Mixx
  • Live
  • E-mail this story to a friend!

4 comentários, o bicho está pegando :) to “Script que calcula cor complementar em PHP”

  1. ThomasNo Gravatar Says:

    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êaNo Gravatar Says:

    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. daniloNo Gravatar Says:

    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. bruninlemosNo Gravatar Says:

    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


I love beerI love CMSI love DesignI love DreamweaverI love FlashI love FoodI love GamesI love MoneyI love MusicI love PhotoshopI love PHPI love ProgrammingI love ShoppingI love WindowsI love Wine
Site protegido Feito com a cabea PageRank Add to Technorati Favorites