[php] Tegenovergestelde van een kleurcode berekene

Pagina: 1
Acties:

  • Vulpecula
  • Registratie: April 2001
  • Laatst online: 23:31
Kan ik het tegenover gestelde van een kleurcode berekenen?

Wanneer iemand bijv. de kleurcode #FFFFFF door geeft dat daar dan het tegenovergestelde van gepakt wordt, dus in dit geval #000000;

Heb al met de function hexdec() zitten klote maar wilde niet.

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

FFFFF= 1111 1111 1111 1111 1111 1111 1111 1111
00000= 0000 0000 0000 0000 0000 0000 0000 0000

de rest is up 2 you

Doet iets met Cloud (MS/IBM)


  • WOmBaT
  • Registratie: September 2000
  • Laatst online: 30-11-2025

WOmBaT

Nyaaa!!!

Het lijkt mij dat je dan dat stuk (decimaal) opsplitst in kleuren (rood groen blauw). Daar doe je dan

nieuw rood = 255 - oud rood
nieuw groen = 255 - oud groen
nieuw blauw = 255 - oud blauw

terug naar hex en achter elkaar plakken :)

  • Vulpecula
  • Registratie: April 2001
  • Laatst online: 23:31
Ik heb dit stukje inelkaar geduwd.
PHP:
1
<?$kleurcode = "#ffffff";$kleur1 = hexdec(substr($kleurcode,1,2));$kleur2 = hexdec(substr($kleurcode,3,2));$kleur3 = hexdec(substr($kleurcode,5,2));$kleur1 = 255-$kleur1;$kleur2 = 255-$kleur2;$kleur3 = 255-$kleur3;$kleurcode2 = "#".dechex($kleur1).dechex($kleur2).dechex($kleur3);echo $kleurcode2;echo "<font color=\"$kleurcode2\">Test</a>";?>

Ik krijg nu #000 terug. Dit zijn 3 nullen te weinig

  • WOmBaT
  • Registratie: September 2000
  • Laatst online: 30-11-2025

WOmBaT

Nyaaa!!!

Dat komt omdat hex 00 gewoon hex 0 is.. Controleren op teruggave van '0' en als dat zo is er '00' van maken.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op zondag 09 juni 2002 14:31 schreef WOmBaT het volgende:
Dat komt omdat hex 00 gewoon hex 0 is.. Controleren op teruggave van '0' en als dat zo is er '00' van maken.
Mja, en dan moet je ook hex 1 niet vergeten enzo he? :P

  • WOmBaT
  • Registratie: September 2000
  • Laatst online: 30-11-2025

WOmBaT

Nyaaa!!!

Op zondag 09 juni 2002 14:38 schreef ACM het volgende:

[..]

Mja, en dan moet je ook hex 1 niet vergeten enzo he? :P
Hmm... daar had ik helemaal geen rekening mee gehouden |:(
Dank :)

  • Vulpecula
  • Registratie: April 2001
  • Laatst online: 23:31
Op zondag 09 juni 2002 14:38 schreef ACM het volgende:

[..]

Mja, en dan moet je ook hex 1 niet vergeten enzo he? :P
:? En daar is geen standaard function voor? :?

  • WOmBaT
  • Registratie: September 2000
  • Laatst online: 30-11-2025

WOmBaT

Nyaaa!!!

PHP:
1
<?$kleurcode = "#3dffff";$kleur1 = hexdec(substr($kleurcode,1,2));$kleur2 = hexdec(substr($kleurcode,3,2));$kleur3 = hexdec(substr($kleurcode,5,2));$kleur1 = 255-$kleur1;$kleur2 = 255-$kleur2;$kleur3 = 255-$kleur3;$kleur1 = dechex($kleur1);$kleur2 = dechex($kleur2);$kleur3 = dechex($kleur3);if ($kleur1<10) { $kleur1='0'.$kleur1; }if ($kleur2<10) { $kleur2='0'.$kleur2;}if ($kleur3<10) { $kleur3='0'.$kleur3; }$kleurcode2 = "#".$kleur1.$kleur2.$kleur3;echo "<font color='".$kleurcode2."'>Test</a>";?>

Zo goed ACM :P
Niet echt geoptimaliseerd maar goed ;)

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op zondag 09 juni 2002 14:42 schreef WOmBaT het volgende:
Zo goed ACM :P
Nope :)
Hexadecimaal gaat tot 16 ;)

  • WOmBaT
  • Registratie: September 2000
  • Laatst online: 30-11-2025

WOmBaT

Nyaaa!!!

PHP:
1
<?....?>

En die is ook fout :'(

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

denk dat je beter met strlen kan gaan werken :)

Verwijderd

Op zondag 09 juni 2002 14:29 schreef frankschers het volgende:
Ik krijg nu #000 terug. Dit zijn 3 nullen te weinig
Doe het dan gewoon per karaktertje, ipv 16-[iets] en dat weer achter elkaar plakken..

  • Vulpecula
  • Registratie: April 2001
  • Laatst online: 23:31
Zo dus.
PHP:
1
<?$kleurcode = "#3dffff";$kleur1 = 255-(hexdec(substr($kleurcode,1,2)));$kleur2 = 255-(hexdec(substr($kleurcode,3,2)));$kleur3 = 255-(hexdec(substr($kleurcode,5,2)));$kleur1 = dechex($kleur1);$kleur2 = dechex($kleur2);$kleur3 = dechex($kleur3);if(strlen($kleur1)==1)        $kleur1 = "0".$kleur1;if(strlen($kleur2)==1)        $kleur2 = "0".$kleur2;if(strlen($kleur3)==1)        $kleur3 = "0".$kleur3;$kleurcode2 = "#".$kleur1.$kleur2.$kleur3;echo $kleurcode2;echo "<font color=\"$kleurcode\">Voor</a>";echo "<font color=\"$kleurcode2\">Na</a>";?>

  • RdeTuinman
  • Registratie: Mei 2001
  • Laatst online: 16-08 07:25
Waarom niet werken met printf of sprintf? Deze kunnen o.a. juist heel mooi hexadecimale getalen afdrukken.
PHP:
1
<?$kleurcodeVoor = "#3dffff";$kleur1 = 255-(hexdec(substr($kleurcodeVoor,1,2)));$kleur2 = 255-(hexdec(substr($kleurcodeVoor,3,2)));$kleur3 = 255-(hexdec(substr($kleurcodeVoor,5,2)));$kleurcodeNa = sprintf("#%02x%02x%02x",$kleur1,$kleur2,$kleur3);printf("<font color='%s'>Voor (%s)</font><br />\n",$kleurcodeVoor,$kleurcodeVoor);printf("<font color='%s'>Na (%s)</font>",$kleurcodeNa,$kleurcodeNa);?>

;)
Pagina: 1