Publié le 03/11/2010
Auteur fobec
Réseaux sociaux
0 partages
0 tweets
0 plus
0 commentaires

Convertir une couleur RGB en valeur hexadecimal et vice versa

Le codage d'une couleur peut prendre les formats suivants:
-> hexadécimal : utilisé en HTML et CSS, exemple #0000FF est une couleur bleu,
-> RGB (Red Blue Green): permet de définir une couleur en PHP, exemple RGB(0,0,255) est la même couleur bleu.

Passer d'un format RGB au hexa

Dans le format RGB, les trois valeurs,comprises entre 0 et 255, représentent le dosage du rouge, du vert et du bleu. Lorsque l'on utilise le format hexadécimal, le principe des 3 couleurs primaires reste le même, les valeurs sont indiquées sous forme hexadécimal.
<?
/**
 * Convertir une couleur RGB en valeur HTML/hexadecimal
 */
class ColorConverter {
    /**
     * Obtenir la valeur hexadecimal d'une couleur
     * @param array $rgb array[R, G, B]
     * @return string
     */
    public static function toHTML(array $rgb) {
        $hexcolor = '#';
        for($i=0; $i<3; $i++) {
            if( ($rgb[$i] > 255) || ($rgb[$i] < 0) ) {
                echo "Error bad value :".$rgb[$i];
                $hexcolor .= '00';
            } else {
                $hex = dechex($rgb[$i]);
                if(strlen($hex) ==2) {
                    $hexcolor.= $hex;
                } else {
                    $hexcolor .= "0". $hex;
                }
            }
        }
        return $hexcolor;
    }
 
    /**
     * Extraire les byte RGB d'une couleur format HTML
     * @param String $hex
     * @return array $rgb array[R, G, B]
     */
    public static function toRGB($hex) {
        if (strlen($hex)==7) { //enlever #
            $hex=substr($hex, 1);
        }
 
        $rgb=array();
        $rgb[]=hexdec(substr($hex,0,2));
        $rgb[]=hexdec(substr($hex,2,2));
        $rgb[]=hexdec(substr($hex,4,2));
        return $rgb;
    }
}
?>

Exemple de conversion de couleur

Ci-dessous un exemple de conversion des composantes couleur du RGB vers l'hexa et inversement.
<?
/**
 * Exemples
 */
//la couleur HTML d'une vert clair
$hexcolor=ColorConverter::toHTML(array(102,255,51));
echo 'Valeur hexadecimal pour RGB(102,255,51): '.$hexcolor;
 
//composante RGB d'une couleur
$rgb=ColorConverter::toRGB('#66ff33');
echo '<br>Composantes RGB de #66ff33 sont: R'.$rgb[0]
        .' G'.$rgb[1].' B'.$rgb[2];
?>

Résultats:
Valeur hexadecimal pour RGB(102,255,51): #66ff33
Composantes RGB de #66ff33 sont: R102 G255 B51

La class facilite le travail avec les couleurs de manière à avoir toujours le même dosage entre vert, rouge et bleu. En effet, dans un projet de site internet, les couleurs sont surtout utilisées dans la feuille de style et dans une image crée avec la librairie GD. Pour jongler entre les formats RGB et hexadécimal, rien de tel qu'une class de conversion.

Ajouter un commentaire

Les champs marqués d'un * sont obligatoires, les adresses emails se sont pas publiées.

A lire aussi

Réseaux sociaux
Présentation de l'article
Catégorie
php5 - class
Mise a jour
03/11/2010
Visualisation
vu 3691 fois
Public
Internaute
Auteur de la publication
Fobec
Admin
Auteur de 267 articles
|BIO_PSEUDO|
Commentaires récents

Publié par Fobec dans tuto

Pour la distribution Linux Mint 12 Lisa, saisir dans le terminal:
# sudo service lightdm restart

Publié par Patrice dans CMS

Concernant la commande ShellExecute :

Si vous voulez lancer un programme dont le nom est contenu dans une propriété text,
caption, items bref d\'un string ... n'oubliez pas de tran...

Publié par Benjamin dans tuto

Fonctionne nickel, merci pour le script :)

Publié par Outsourcing dans news

Le PageRank n'a plus une reelle importance a mon humble avis mais bcp de mes clients continue a juger de la qualite de ma prestation en referencement avec la barre verte!

Publié par Vincent dans tuto

Sympa votre petit script :) Oui il existe des bibliotheques deja toutes faites mais elles sont en general 50x plus lourdes que ce petit bout de code qui fait exactement ce qu'il faut. En plus votr...