docs.jmini.fr

Les docs Jmini

Les docs jmini regroupent mes notes personnelles plus ou moins détaillées que je souhaite partager. Compilations de liens, tutoriels, réalisations pense-bêtes, morceaux de codes...
Autant d’informations que je retrouve sur mon site et qui pourront vous être utiles. En savoir plus...



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


© 2007-2024 Jérémie Bresson | jmini.fr | Ce site est sous licence Creative Commons - en savoir plus