La structure ColorMatrix contient une matrice 5x5 de nombres 'float'. Plusieurs méthodes de la classe ImageAttributes modifient les couleurs d'une image en utilisant une matrice couleur
Global Const $tagGDIPCOLORMATRIX = "float m[25]"
m | Contient des informations sur la matrice couleur. |
Une matrice couleur est un mécanisme qui transforme toute couleur (RVBA) en une autre couleur (R'V'B'A'). Pour des transformations linéaires, comme l'ajustement du contraste, une matrice 4x4 conviendrait, mais la prise en charge des translations pour traiter l'ajustement de la luminosité nécessite une cinquième ligne qui contient le vecteur de translation. Enfin, pour composer les transformations affines ainsi obtenues, on ajoute une cinquième colonne, toujours la même, qui permet de multiplier les matrices 5x5 entre elles de façon cohérente.
Une couleur est alors représentée par un vecteur 1x5, dont les quatre premières composantes sont convertis en taux (division par 255) et dont la cinquème coordonnée est toujours 1.