- CharToString
- CharArrayToString
- CharArrayToStruct
- StructToCharArray
- ColorToARGB
- ColorToPRGB
- ColorToString
- DoubleToString
- EnumToString
- IntegerToString
- ShortToString
- ShortArrayToString
- TimeToString
- NormalizeDouble
- StringToCharArray
- StringToColor
- StringToDouble
- StringToInteger
- StringToShortArray
- StringToTime
- StringFormat
ColorToPRGB
Convertit le type color en type uint pour obtenir une représentation ARGB prémultipliée de la couleur - PRGB. Le format de couleurPRGB est utilisé lors de la création de ressource graphique, sortie de texte et dans la classe de bibliothèque standard CCanvas avec le format de couleur COLOR_FORMAT_ARGB_RAW (les composants ne sont pas traités par le terminal et doivent être correctement préparé par l'utilisateur).
uint ColorToPRGB(
|
Paramètres
clr
[in] Valeur de la couleur dans une variable de type color.
alpha
[in] Valeur du canal alpha, pour obtenir la couleur au format ARVB. Les valeurs possibles vont de 0 (la couleur du pixel superposé ne change pas du tout l'affichage du pixel sous-jacent) à 255 (la couleur est complètement superposée et chevauche la couleur du pixel sous-jacent). La transparence des couleurs en termes de pourcentage est calculée comme suit : (1 - alpha / 255) * 100%, c'est-à-dire que plus la valeur du canal alpha est faible, plus la couleur est transparente.
Valeur de retour
Représentation des couleurs au format ARGB, où 4 octets de type uint contiennent les valeurs Alfa, Red, Green, Blue (canal alpha, rouge, vert, bleu).
Note
En quoi le PRGB diffère-t-il de lARGB ?
Il existe deux représentations courantes de la couleur RGBA avec un canal alpha :
- ARVB "droit" (normal) - RVB est stocké "tel quel", alpha est séparé ;
- prémultiplié (PRGB) - RVB est déjà multiplié par alpha.
Le mode COLOR_FORMAT_ARGB_RAW suppose que les composantes de couleur sont déjà correctement préparées et que le terminal ne les "normalise/recalcule" pas. Par conséquent, dans les scénarios où une couleur prémultipliée est attendue, c'est PRGB qui doit être transmis, sinon des artefacts visuels/incohérences pendant le rendu peuvent se produire.
La couleur PRGB est calculée par la formule :
R = R * A / 255
G = G * A / 255
B = B * A / 255
A = A
Cas particuliers :
- lorsque alpha = 255, le résultat coïncide avec ColorToARGB(clr,255) (la multiplication ne change pas RVB) ;
- lorsque alpha = 0, le résultat devient 0x00000000 (pixel entièrement transparent, RVB = 0).
Exemple :
//+------------------------------------------------------------------+
|
Voir aussi
Ressources, ColorToARGB, ResourceCreate(), TextOut(), Color type, Types char, short, int et long