Dans le cas où un package doit utiliser des couleurs, nous recommandons que les couleurs soient représentées sous forme de tableaux dans les packages PEAR. Toutes les valeurs doivent être comprises entre 0 et 255.
Le code suivant défini un tableau qui contient une définition RVB de la couleur verte utilisée dans le logo officiel de PEAR.
<?php
$couleur = array(0x33, 0x99, 0x00);
?>
ou
<?php
$couleur = array(51, 153, 0);
?>
Notez que les deux types de représentation des valeurs sont équivalentes. Ces valeurs représentent les valeurs RVB (rouge, vert, bleu). Nous avons décidé de ne pas utiliser "r", "g" et "b" ant tant qu'indices du tableau, car les indexes numériques simplifient les manipulations de couleurs et cette représentation est déjà courramment utilisée.
En complément de la représentation RVB décrite ci-dessus, il est recommandé d'utiliser une quatrième valeur pour la représentation des valeurs channel alpha. Un exemple de notre "Vert PEAR" avec une intensité d'environ 80% serait:
<?php
$couleur = array(0x33, 0x99, 0x00, 0xCC);
?>
La valeur alpha est également comprise entre 0 et 255. Une valeur de 255 correspond à une opacité de 100% (intensité des couleurs à 100%), 0 signifie une totale transparence.
Notez bien que cela ne correspond pas aux valeurs utilisées par imagecolorallocate(). La représentation alpha utilisée dans PEAR a été choisie pour des raisons d'uniformité avec les autres valeurs RVB et car elle est communément utilisée dans beaucoup d'autres applications (outils de traitements d'images, etc.).
Nous avons décidé d'ajouter un autre champ optionnel afin de définir le type de la couleur en tant que RGB/RGBA ou autre. Le champ "type" peut être ajouté au tableau.
<?php
$color = array(0x33, 0x99, 0x00, 0xCC, "type" => "RGB");
?>
Actuellement les types suivants sont définis:
RVB - rouge, vert, bleu
CMJN - cyan, magenta, jaune, noir
Notez que les représentations RVBA sont également de type "RGB" car elles sont très similaires.
Le package PEAR Image_Color va (très bientôt) être doté des fonctions permettant de convertir d'autres formats de représentation de couleurs en notre représentation interne.
Statut: Actuellement Image_Color offre des fonctions permettant de convertir des représentations sous forme de nom de couleur ("green" par exemple) ou hexadécimale ("#339900" par exemple) en format RBGA PEAR. Nous travaillons actuellement au support des channels alpha qui seront bientôt ajoutés. Les fonctions de conversion CMJN seront ajoutées par la suite.