ColorToARGB

Convertit le type color en type uint pour recevoir la représentation ARGB de la couleur. Le format de la couleur ARGB est utilisé à la créationde la ressource graphique , de la sortie du texte et dans la classe de la bibliothèque standard CCanvas.

uint  ColorToARGB(
   color  clr,          // La couleur convertible dans le format color
   uchar  alpha=255     // Le canal alpha dirigeant la transparence de la couleur
   );

Réglages

clr

[in] La valeur de la couleur dans la variable du type color.

alpha

[in]  La valeur du canal alpha, pour la réception de la couleur dans le formatARGB. Est spécifié par la valeur de 0 (la couleur du pixel appliqué ne change pas du tout l'affichage du pixel inférieur ) jusqu'à 255 (la couleur est appliquée complètement et couvre la couleur du pixel inférieur). La transparence de la couleur en pourcentage est calculée comme (1-alpha/255) *100%, c'est-à-dire que plus la valeur du canal est moins grand plus la couleur est transparente.

La valeur rendue

La représentation de la couleur dans le format ARGB, où dans quatre octets du type uint sont prescrit par ordre les valeurs Alfa, Red, Green, Blue (le canal alpha, rouge, vert, bleu clair).

Note

Le format principal utilisé partout pour la description de la couleur du pixel sur l'écran de l'écran en infographie est RGB, où selon les noms des couleurs de base sont spécifiés les composants rouge (Red), vert (Green) et bleu (Blue) de la couleur. Chaque composant est décrit par un octet qui spécifie la densité de la couleur donnée dans l'intervalle de 0 jusqu'à 255 (de 0x00 jusqu'à 0XFF dans le format hexadécimal). Puisque la couleur blanche contient toutes les couleurs, il est décrit comme comme 0xFFFFFF, c'est-à-dire chacun de trois composants est présenté par la valeur maximal 0xFF.

Mais dans un certain nombre des tâches on demande l'indication de la transparence de la couleur pour décrire, comment l'image va se présenter, si la couleur avec une certaine transparence est appliquée sur cette image. Pour tels cas on introduit la notion du canal alpha (Alpha), qui est introduit comme le composant supplémentaire au format RGB. Le schéma du format ARGB est montré sur le dessin.

ARGB

Les valeurs ARGB sont indiquées d'habitude dans le format hexadécimal, où chaque paire des chiffres présente par ordre les valeurs des canaux Alpha, Red, Green et Blue. Par exemple, la couleur ARGB 80FFFF00 signifie la couleur jaune avec la transparence 50.2 %. Au début est 0x80, qui spécifie la valeur 50.2% du canal alpha, puisque c'est 50.2% de la valeur 0xFF; ensuite la première paire FF présente la valeur maximale du composant rouge; la paire suivante FF spécifie la même force du composant vert; et la dernière paire 00 présente la valeur minimale du composant bleu (l'absence de la couleur bleue). L'addition de la couleur verte et rouge donne la couleur jaune. Si le canal alpha n'est pas utilisé, l'enregistrement peut être réduite jusqu'à 6 chiffres RRGGBB, c'est pourquoi les valeurs du canal alpha sont stockées dans les octets entiers supérieurs comme uint.

En fonction du contexte les chiffres qui contiennent 16 symboles peuvent être enregistrés avec le préfixe '0x' ou '#', par exemple, 80FFFF00, ou 0x80FFFF00, ou #80FFFF00.

 

Exemple:

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- spécifions la transparence
   uchar alpha=0x55;  // la valeur 0x55 signifit 55/255=21.6 % de la transparence   
   //--- déduisons la conversion au ARGB pour la couleur  clrBlue
   PrintFormat("0x%.8X - clrBlue",clrBlue);
   PrintFormat("0x%.8X - clrBlue ARGB with alpha=0x55 (transparency 21.6%%)",ColorToARGB(clrBlue,alpha));
   //---  déduisons la conversion au ARGB pour la couleur clrGreen
   PrintFormat("0x%.8X - clrGreen",clrGreen);
   PrintFormat("0x%.8X - clrGreen ARGB with alpha=0x55 (transparency 21.6%%)",ColorToARGB(clrGreen,alpha));
   //---  déduisons la conversion au ARGB pour la couleur  clrRed
   PrintFormat("0x%.8X - clrRed",clrRed);
   PrintFormat("0x%.8X - clrRed ARGB with alpha=0x55 (transparency 21.6%%)",ColorToARGB(clrRed,alpha));
  }

Voir aussi

Les ressources, ResourceCreate(), TextOut(), Le type color, Les types char, short, int et long