Pipette

TColor

El formato TColor, utilizado en la programación de Lazarus o Delphi, también se basa en el modelo de color RGB, pero factura los valores RGB en un solo número que puede tomar valores entre 0 y 16777215. Esto distingue a TColor de todos los demás modelos de color presentados, que de lo contrario expresan los colores con una combinación de varios números (incluso si estos números se juntan en el caso de la escritura hexadecimal de la notación RGB en la forma #RRGGBB).

Conversión desde o hacia el Modelo de Color RGB

Los valores RGB están en la siguiente relación con el valor de TColor:

TColor = R or (G shl 8) or (B shl 16)

La siguiente relación se aplica al convertir el valor de TColor en los componentes R, G y B:

R = TColor and $FF
G = (TColor shr 8) and $FF
B = (TColor shr 16) and $FF

Los operadores "shl" (shift left, cambio a la izquierda), "shr" (shift right, cambio a la derecha), "and" y "or" son operadores a nivel de bits. Esto significa que funcionan en el nivel binario (por ejemplo, 1101010 o 1001) en lugar de en el nivel numérico (por ejemplo, 2, 17 o 345). Un desplazamiento a la izquierda (shl) significa desplazar los unos y ceros por el valor a la izquierda, y el desplazamiento a la derecha (shr) desplazar los unos y ceros por el valor a la derecha. El OR (o) a nivel de bits se aplica a dos cadenas de bits de la misma longitud al vincular pares de la misma posición con un OR lógico (ejemplo: 1010 o 1100 = 1110). El AND (y) a nivel de bits se aplica a dos secuencias de bits de igual longitud al vincular pares de la misma posición con un lógico AND. Aquí está el resultado 1 si ambos bits son 1, de lo contrario 0 (ejemplo: 1010 y 1100 = 1000).

Número de Colores representables

Se puede mostrar un máximo de 16777216 colores diferentes con un valor de TColor. Esto corresponde a 8 bits por canal rojo, verde y azul (de 0 a 255 cada uno). Por tanto, el número máximo de colores posibles es el mismo que en la notación hexadecimal #RRGGBB, en la que también se utiliza un byte para cada uno de los tres canales de color.

En el programa Pipette, el valor de TColor se muestra en la penúltima línea ("TColor").

Temas relacionados