- CharToString
- CharArrayToString
- CharArrayToStruct
- StructToCharArray
- ColorToARGB
- ColorToPRGB
- ColorToString
- DoubleToString
- EnumToString
- IntegerToString
- ShortToString
- ShortArrayToString
- TimeToString
- NormalizeDouble
- StringToCharArray
- StringToColor
- StringToDouble
- StringToInteger
- StringToShortArray
- StringToTime
- StringFormat
ColorToPRGB
Transforma el tipo color en el tipo uint para obtener una representación premultiplied ARGB del color PRGB. PRGB es un recurso utilizado en la creación de recursos gráficos, la representación de texto y en la clase de la biblioteca estándar CCanvas con el formato de color COLOR_FORMAT_ARGB_RAW (los componentes no son procesados por el terminal y deben ser preparados correctamente por el usuario).
uint ColorToPRGB(
|
Parámetros
clr
[in] Valor del color en una variable de tipo color.
alpha
[in] Valor del canal alfa para obtener el color en formato ARGB. Se especifica mediante un valor de 0 (el color del píxel superpuesto no altera en absoluto la apariencia del píxel subyacente) a 255 (el color se superpone completamente y oscurece el color del píxel subyacente). La transparencia del color como porcentaje se calcula como (1-alfa/255)*100%; es decir, cuanto menor sea el valor del canal alfa, más transparente será el color.
Valor retornado
Una representación de color en formato ARGB, donde cuatro bytes uint contienen los siguientes valores en orden: Alfa, Red, Green, Blue (canal alfa, rojo, verde, azul).
Observación
¿En qué se diferencia PRGB de ARGB?:
Existen dos representaciones comunes del color RGBA con un canal alfa:
- ARGB straight (normal) el RGB se almacena "tal cual", con alfa almacenado por separado;
- premultiplied (PRGB) el RGB ya está multiplicado por alfa.
El modo COLOR_FORMAT_ARGB_RAW asume que los componentes de color ya están correctamente preparados y el terminal no los normaliza ni recalcula. Por lo tanto, en escenarios donde se espera un color premultiplicado, se debe transmitir precisamente PRGB; de lo contrario, pueden producirse artefactos visuales e inconsistencias en la representación.
El color PRGB se calcula mediante la fórmula
R = R * A / 255
G = G * A / 255
B = B * A / 255
A = A
Casos especiales:
- Con alfa = 255, el resultado es el mismo que con ColorToARGB(clr,255) (la premultiplicación no modifica el RGB);
- Con alfa = 0, el resultado es 0x00000000 (píxel totalmente transparente, RGB = 0).
Ejemplo:
//+------------------------------------------------------------------+
|
Ver también
Recursos, ColorToARGB, ResourceCreate(), TextOut(), Tipo color, Tipos char, short, int y long