Publié par Jérémie Bresson dans les docs Jmini (http://docs.jmini.fr) à l’adresse (http://docs.jmini.fr/code/php-conversion-code-couleur).
Dernière mise à jour : Mercredi 30 septembre 2009
PHP : Conversion code couleur
Le script suivant permet d’obtenir le code couleur hexadécimal (pour une utilisation en CSS ou en HTML) à partir des composantes RGB (rouge, vert, bleu).
Script
#!/usr/bin/php
<?php
/**
* RGB TO COLOR - CONVERTER
* syntax: rgb2color.php (red) (green) (blue)
* ex: rgb2color.php 255 252 114
*/
if($argc != 4) {
die("RGB TO COLOR - CONVERTER\n syntax: rgb2color.php (red) (green) (blue)\n ex: rgb2color.php 255 252 114\n");
}
$r = $argv[1];
$g = $argv[2];
$b = $argv[3];
echo rgb2color($r, $g, $b)."\n";
/**
* Convert a RGB color into a Hex-Color String
* @param <int> $red : red component (0-255)
* @param <int> $green : green component (0-255)
* @param <int> $blue : blue component (0-255)
* @return <string> the color
*/
function rgb2color($red, $green, $blue) {
return "#".dec2hex($red,2).dec2hex($green,2).dec2hex($blue,2);
}
/**
* Convert a decimal value to a hexadecimal value (with some control of the format)
* @param <int> $value : the decimal value
* @param optionnal <int> $size : the minimal length that the hex value should have
* @param optionnal <type> $char : the padding character
* @return <string> the hexadecimal value
*/
function dec2hex($value, $size = 0, $char = '0') {
$ret = dechex($value);
while(strlen($ret) < $size ) {
$ret = $char.$ret;
}
return $ret;
}
?>
Utilisation
Ce script est écrit pour être utilisé directement dans un terminal. Il s’utilise en indiquant les trois valeurs des composante RGB sous forme de nombre (entre 0 et 255) séparé par un espace. Exemple :
rgb2color.php 255 252 114
Il exploite la possibilité de passer des arguments à un script PHP. Le script est écrit pour Mac OS X, pour un autre système d’exploitation, il faudra peut être adapter la ligne Sha bang.
Détail des fonctions
Evidement les fonctions appelées par le script sont réutilisables ailleurs.
rgb2color
function rgb2color($red, $green, $blue)
Il s’agit de la fonction principale. Le script ne fait que vérifier le nombres de paramètres et appelle cette fonction.
Les arguments sont :
- $red (int) la valeur de la composante rouge (0-255)
- $green (int) la valeur de la composante verte (0-255)
- $blue (int) la valeur de la composante bleue (0-255)
La valeur de retour est la couleur.
dec2hex
function dec2hex($value, $size = 0, $char = '0')
Cette fonction complète la fonction PHP dechex. Elle permet de contrôler le format de la chaîne retournée (en précisant de manière optionnelle la longueur de la chaîne et le caractère de remplissage).
Les paramètres sont :
- $value (int) la valeur à convertir
- $size (int) la taille minimale de la chaine retournée
- $char (char) le caractère de remplissage (pour les chaînes trop courtes)
La valeur retournée est la chaine hexadécimale formatée
Cette fonction ce comporte comme la fonction dec2hex de MATLAB
Voir aussi
Cet article est dans la catégorie : Code