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.
$couleur = array(0x33, 0x99, 0x00); |
ou
$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:
$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.
$color = array(0x33, 0x99, 0x00, 0xCC, "type" => "RGB"); |
Actuellement les types suivants sont définis:
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 ou support des chanel alpha qui seront bientôt ajoutées.
Les fonctions de conversion CMJN seront ajoutées par la suite.