Hex kleur converten naar RGB kleur
Auteur: Rik - 10 september 2006 - 18:54 - Gekeurd door: Rens - Hits: 4734 - 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:
<?php
function hex2rgb($hex)
{
$hex = ltrim($hex, '#');
if(strlen($hex) == 3)
{
$new = '';
for($i = 0; $i < 3; $i++) $new .= str_repeat($hex{$i}, 2);
$hex = $new;
}
$rgb = array();
for ($i = 0; $i < 3; $i++) $rgb[] = hexdec(substr($hex, $i*2, 2));
return 'rgb(' . implode(', ', $rgb) . ')';
}
// De volgende invoer wordt nu geaccepteerd (levert telkens rgb(170, 34, 204)):
echo hex2rgb('a2c')."<br />";
echo hex2rgb('aa22cc')."<br />";
echo hex2rgb('#a2c')."<br />";
echo hex2rgb('#aa22cc')."<br />";
?>
<?php function hex2rgb($hex) { { $new = ''; for($i = 0; $i < 3; $i++) $new .= str_repeat($hex{$i}, 2); $hex = $new; } for ($i = 0; $i < 3; $i++) $rgb[] = hexdec(substr($hex, $i*2, 2)); return 'rgb(' . implode(', ', $rgb) . ')'; } // De volgende invoer wordt nu geaccepteerd (levert telkens rgb(170, 34, 204)): echo hex2rgb ('a2c')."<br />"; echo hex2rgb ('aa22cc')."<br />"; echo hex2rgb ('#a2c')."<br />"; echo hex2rgb ('#aa22cc')."<br />"; ?>
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.
<?php
function hex2rgb($hex, $valid = true) {
$hex = substr($hex, 0, 1) == '#' ? substr($hex, 1) : $hex;
if ($valid && !ctype_xdigit($hex)) {
return false;
}
$rgb = array();
for ($i = 0; $i < 6; $i += 2) {
$rgb[] = hexdec(substr($hex, $i, 2)) ;
}
return 'rgb(' . implode(', ', $rgb) . ')';
}
<?php function hex2rgb($hex, $valid = true) { return false; } for ($i = 0; $i < 6; $i += 2) { } return 'rgb(' . implode(', ', $rgb) . ')'; }
|
Code: |
<?php
function hex2rgb($hex = '') {
$hex = substr($hex, 0, 1) == '#' ? substr($hex, 1) : $hex;
$rgb = array();
for ($i = 0; $i < 6; $i += 2) {
$rgb[] = hexdec(substr($hex, $i, 2)) ;
}
return 'rgb(' . implode(', ', $rgb) . ')';
}
// Voorbeeld:
echo hex2rgb('#4B3D32'); // Zal "rgb(75, 61, 50)" outputten
?>
<?php function hex2rgb($hex = '') { for ($i = 0; $i < 6; $i += 2) { } return 'rgb(' . implode(', ', $rgb) . ')'; } // Voorbeeld: echo hex2rgb ('#4B3D32'); // Zal "rgb(75, 61, 50)" outputten ?>
Download code (.txt)
|
|
Stemmen |
Niet ingelogd. |
|