login  Naam:   Wachtwoord: 
Registreer je!
Scripts > PHP > Snippets > Hex kleur converten naar RGB kleur


Reacties op het script Hex kleur converten naar RGB kleur

Offline  Thomas
Gepost op: 11 september 2006 - 12:17
Moderator



Hm, dat $hex leeg kan zijn is niet echt zinnig, dus dit kun je achterwege laten.

Ook zou je websafe kleuren om willen zetten naar rgb-waarden.

De volgende variant is wat flexibeler:

  1. <?php
  2. function hex2rgb($hex)
  3. {
  4. $hex = ltrim($hex, '#');
  5.  
  6. if(strlen($hex) == 3)
  7. {
  8. $new = '';
  9. for($i = 0; $i < 3; $i++) $new .= str_repeat($hex{$i}, 2);
  10. $hex = $new;
  11. }
  12.  
  13. $rgb = array();
  14. for ($i = 0; $i < 3; $i++) $rgb[] = hexdec(substr($hex, $i*2, 2));
  15. return 'rgb(' . implode(', ', $rgb) . ')';
  16. }
  17. ?>


De volgende invoer wordt nu geaccepteerd (levert telkens rgb(170, 34, 204)):
  1. echo hex2rgb('a2c')."<br />";
  2. echo hex2rgb('aa22cc')."<br />";
  3. echo hex2rgb('#a2c')."<br />";
  4. echo hex2rgb('#aa22cc')."<br />";

Offline  Rik
Gepost op: 14 september 2006 - 16:23
Gouden medailleGouden medaille

Crew algemeen




Ok FangorN, ik heb jouw variant er ook bijgezet! 

Een dingetje ben ik alleen niet met je eens. Jij zegt namelijk dat jouw code websafe kleuren omzet, het voorbeeld dat je geeft is eigenlijk niet websafe, want dan zou je alleen 0, 3, 6 enz. mogen gebruiken. ;)

Offline  Button
Gepost op: 14 september 2006 - 20:50
PHP ver gevorderde



wat bedoelen jullie met die websafe kleuren?

verder wel handig.

Offline  Rik
Gepost op: 15 september 2006 - 18:06
Gouden medailleGouden medaille

Crew algemeen




Zoals je waarschijnlijk wel weet is een websafe kleur opgebouwd uit 00, 33, 66, 99, cc en ff. Je kan dus ipv 255^3=16581375 maar 6^3=216 verschillende kleuren maken.

Wat FangorN volgens mij bedoelt is de verkorte schrijfwijze. Je kan daarmee in plaats van #aa22cc ook #a2c gebruiken. Dat wordt door de browser als het zelfde gezien.

Offline  ikkedikke
Gepost op: 16 september 2006 - 00:14
PHP expert



verder misschien checken of een kleur niet uit andere letters bestaat dan 0-9 of a-f.
http://nl2.php.net/ctype_xdigit

Offline  Rik
Gepost op: 16 september 2006 - 11:19
Gouden medailleGouden medaille

Crew algemeen




Heb ik ook toegevoegd! 

Misschien wordt het tijd om een "final version" te maken met jullie ideeën gecombineerd?  


Enkel aanvullende informatie, vragen en antwoorden op vragen zijn welkom.
 
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.04s