Pour effectuer certains traitements, le module d'image définit une classe permettant de gérer les images. Il s'agit d'une classe associative, non-modifiable, contenant quatre éléments : les composantes rouge, verte, bleue et alpha, chacune représentée par un entier entre 0 et 255. À la mode des noms Python en trois lettres (int
, str
, etc.), son nom de base est « col », ce qui permet d'éviter les querelles linguistiques. Elle est cependant également accessible avec les noms de « tint », « color » et « colour ».
Une couleur présente les propriétés « intelligentes » suivantes : strHTML
, qui renvoie une chaîne de caractère au format « #RRGGBB », intRGBA
et intARGB
selon le poids donné à l'information de transparence, percents
qui renvoie un tuple contenant les mêmes composantes R, G, B, A, dans le même ordre, mais en tant que flottants entre 0 et 1, et enfin grey
ou gray
, qui renvoie un nombre entier entre 0 et 255 correspondant à la nuance de gris de même valeur que la couleur initiale.
Les méthodes togrey
et togray
, sans paramètre, renvoient d'ailleurs un objet col
correspondant à cette nuance de gris. La méthode toalpha
renvoie pour sa part une couleur identique à la couleur initiale, mais avec la valeur alpha passée en paramètre à la place de la valeur initiale (utile par exemple pour utiliser des versions partiellement transparentes des couleurs nommées. Une méthode dye
permet d'appliquer une couleur sur une autre : elle renvoie la couleur qui serait obtenue si on affichait la couleur initiale par dessus une autre passée en paramètre, en fonction de la transparence. Enfin, une méthode dist
permet de calculer la distance euclidienne entre deux couleurs.
La classe col
fournit également quelques méthodes de classe : fromARGB
et fromRGBA
permettent de créer un objet couleur à partir d'un entier (complémentaire des propriétés « intelligentes » sus-mentionnées), et random
permet de générer une couleur aléatoire, avec des valeurs minimales et maximales fournies pour chacune des composantes. La méthode de classe hue
permet d'obtenir une teinte correspondant à son paramètre : si celui-ci est un entier, on calculera la couleur correspondant à un niveau de charge (dégradé entre vert pour 0%, jaune pour 50%, rouge pour 100%). S'il s'agit plutôt d'une chaîne de caractère, on chargera l'image correspondante pour calculer sa couleur moyenne.
Enfin, la classe elle-même (et non pas ses instances, dont les clefs correspondent aux différentes composantes de couleur) peut être utilisée comme un dictionnaire, pour récupérer une des couleurs nommées ou de parser une chaîne selon divers formats comme « #RRGGBBAA ». Ce parsage est également ajouté à celui du module types. Le module fournit environ cent cinquante couleurs nommées différentes, dont la plupart proviennent de la norme CSS (mais j'en ai ajouté quelques autres, par exemple « sepia », parfois utile pour teinter les images).
TODO : sera utilisé pour afficher du texte sur les images, mais pour l'instant, c'est à recoder.