Couleurs

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).

Polices de caractère

TODO : sera utilisé pour afficher du texte sur les images, mais pour l'instant, c'est à recoder.