2010-09-07 15 views

Respuesta

14

Me parece que tomaron el mismo tono (color básico) y subieron y bajaron el brillo. Eso se puede hacer con la suficiente facilidad con transformaciones HSL o HSV. Consulte en Wikipedia los espacios de color HSL y HSV para obtener una cierta comprensión de la teoría involucrada.

Idea básica: las computadoras representan el color con una mezcla de intensidad roja, intensidad verde e intensidad azul, llamada RGB, porque esa es la manera en que la pantalla muestra el color. HSL (Hue, Saturation, Lightness) y HSV (Hue, Saturation, Value) son dos modelos alternativos para representar el color que son más intuitivos y más cercanos a la forma en que los seres humanos tienden a pensar sobre cómo se ven los colores.

El tono es el color básico, representado (más o menos) como un ángulo en una rueda de color. La saturación es un valor lineal, de 0 (gris) a 255 (color brillante y vibrante). Y la luminosidad/valor representa el brillo, de 0 (negro) a 100 (blanco).

Los algoritmos para transformar de RGB -> HSL y HSL -> RGB (o HSV en lugar de HSL) son bastante sencillos. Intente transformar su color en HS *, ajuste el brillo y vuelva a transformarse. Tomando varios valores de brillo diferentes de menor a mayor, y organizándolos como cuñas en un gráfico circular, puede duplicar esa imagen con bastante facilidad.

+0

Gracias Mason, como usted sugiere, que mantiene constante el SA y hacer que la L varía. Obtuve el resultado que quería. Gracias mghie también por el enlace. Usé el algoritmo de efg para convertir hsv a rgb. – Rick

+2

Gran respuesta. Además, verifique la unidad GraphUtil en el VCL: ColorAdjustLuma y otras funciones. –

+2

Y ColorRGBToHLS y su inverso en la misma unidad. –

8

Mire en el HSV colour space. Utilizándolo, puede producir diferentes tonos o tintes a partir de un color determinado. Hay una página con el código Pascal/Delphi para la conversión entre RGB y HSV en efg's Computer Lab.

3

Roderick, los enlaces @mghie son geniales para comenzar, pruebe también la biblioteca Colorlib Delphi, que le permite convertir entre modelos de color y utilidades de conversión de color HTML. es muy completo, incluye código fuente completo y freeware;).

compruebe la demostración application, en esta imagen puede ver una paleta azul generada utilizando esta biblioteca.

alt text

Cuestiones relacionadas