login  Naam:   Wachtwoord: 
Registreer je!
 Scripts:

Scripts > PHP > Snippets > Hex kleur converten naar RGB kleur

Hex kleur converten naar RGB kleur

Auteur: Rik - 10 september 2006 - 18:54 - Gekeurd door: Rens - Hits: 4657 - Aantal punten: 2.25 (2 stemmen)



Deze functie zet een hexadecimale kleur om in een RGB kleur.


UPDATE!
FangorN heeft een aanvulling gemaakt om webveiligere hexadecimale kleuren (bijvoorbeeld #a46 wat gelijk is aan #aa4466) ook om te zetten en ook heeft hij een paar dingetjes een beetje veranderd:

  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.  
  18. // De volgende invoer wordt nu geaccepteerd (levert telkens rgb(170, 34, 204)):
  19. echo hex2rgb('a2c')."<br />";
  20. echo hex2rgb('aa22cc')."<br />";
  21. echo hex2rgb('#a2c')."<br />";
  22. echo hex2rgb('#aa22cc')."<br />";
  23. ?>


UPDATE 2!
Naar de reactie van ikkedikke heb ik in de functie een tweede parameter toegevoegd waarmee je kan bepalen of de kleur ook valid moet zijn. Als je true opgeeft en de kleur is ongeldig wordt false gereturned.
  1. <?php
  2. function hex2rgb($hex, $valid = true) {
  3. $hex = substr($hex, 0, 1) == '#' ? substr($hex, 1) : $hex;
  4.  
  5. if ($valid && !ctype_xdigit($hex)) {
  6. return false;
  7. }
  8.  
  9. $rgb = array();
  10. for ($i = 0; $i < 6; $i += 2) {
  11. $rgb[] = hexdec(substr($hex, $i, 2)) ;
  12. }
  13.  
  14. return 'rgb(' . implode(', ', $rgb) . ')';
  15. }

Code:
  1. <?php
  2. function hex2rgb($hex = '') {
  3. $hex = substr($hex, 0, 1) == '#' ? substr($hex, 1) : $hex;
  4.  
  5. $rgb = array();
  6. for ($i = 0; $i < 6; $i += 2) {
  7. $rgb[] = hexdec(substr($hex, $i, 2)) ;
  8. }
  9. return 'rgb(' . implode(', ', $rgb) . ')';
  10. }
  11.  
  12. // Voorbeeld:
  13. echo hex2rgb('#4B3D32'); // Zal "rgb(75, 61, 50)" outputten
  14. ?>
Download code! Download code (.txt)

 Stemmen
Niet ingelogd.

 Reacties
Post een reactie
Lees de reacties (6)
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.039s