- CharToString
- CharArrayToString
- CharArrayToStruct
- StructToCharArray
- ColorToARGB
- ColorToPRGB
- ColorToString
- DoubleToString
- EnumToString
- IntegerToString
- ShortToString
- ShortArrayToString
- TimeToString
- NormalizeDouble
- StringToCharArray
- StringToColor
- StringToDouble
- StringToInteger
- StringToShortArray
- StringToTime
- StringFormat
ColorToPRGB
Converte il tipo color nel tipo uint per ottenere una rappresentazione ARGB premultiplied del colore - PRGB. Il formato colore PRGB viene utilizzato durante la creazione di risorse grafiche, output di testo e nella classe della libreria standard CCanvas con il formato colore COLOR_FORMAT_ARGB_RAW (i componenti non vengono elaborati dal terminale e devono essere preparati correttamente dall'utente).
uint ColorToPRGB(
|
Parametri
clr
[in] Valore del colore in una variabile di tipo color.
alpha
[in] Valore del canale alfa, per ottenere il colore nel formato ARGB. È impostato da 0 (il colore del pixel sovrapposto non modifica affatto la visualizzazione del pixel sottostante) a 255 (il colore è sovrapposto completamente e si sovrappone al colore del pixel sottostante). La trasparenza del colore in termini percentuali viene calcolata come (1-alfa/255)*100%, cioè più basso è il valore del canale alfa, più trasparente è il colore.
Valore restituito
Rappresentazione del colore in formato ARGB, dove quattro byte di tipo uint contengono i valori Alfa, Rosso, Verde, Blu (canale alfa, rosso, verde, blu).
Nota
In cosa il PRGB differisce dall'ARGB?
Esistono due rappresentazioni comuni del colore RGBA con un canale alfa:
- straight (normale) ARGB - RGB è memorizzato "così com'è", alfa è separato;
- premultiplied (PRGB) - RGB è già moltiplicato per alfa.
La modalità COLOR_FORMAT_ARGB_RAW presuppone che i componenti colore siano già preparati correttamente e il terminale non li "normalizza/ricalcola". Pertanto, negli scenari in cui è previsto il colore premultiplied (premoltiplicato), è PRGB che dovrebbe essere passato, altrimenti potrebbero verificarsi artefatti/disallineamenti visivi durante il rendering.
Il colore PRGB viene calcolato con la formula:
R = R * A / 255
G = G * A / 255
B = B * A / 255
A = A
Casi particolari:
- quando alfa = 255 il risultato coincide con ColorToARGB(clr,255) (la moltiplicazione non cambia RGB);
- quando alfa = 0 il risultato diventa 0x00000000 (pixel completamente trasparente, RGB = 0).
Esempio:
//+------------------------------------------------------------------+
|
Vedi anche
Risorse, ColorToARGB, ResourceCreate(), TextOut(), Tipo color, Tipi char, short, int e long