PDA

Ver la Versión Completa : Color puro de un RGB o TColor


MaxiDucoli
31-05-2012, 23:02:24
Hola, mi problema es el siguiente: Tengo 2 colores y quiero saber si el tercer color es igual a los 2 anteriores.
El problema es que no son todos colores iguales y a veces hasta los colores son mucho más oscuros entre sí.
Hay alguna manera de poder extraer el "color puro" de ese color?

Por ejemplo, si tengo estos tre colores : A B C y quiero sacar el color puro que sería RGB(0,0,255) - AZUL.
Hay alguna función que me tome eso? Ya que no sólo son colores normales, si no que son VIOLETA - AMARILLO - VERDE - ROJO los que necesito "extirpar".
Cómo podría "pensar" en hacerla, ya que no me doy mucha mañana con esto de los colores, no entiendo casi nada.

Gracias! :)

FGarcia
31-05-2012, 23:08:39
En la parte de baja de este mensaje existe una seccion llamada Temas Similares en los que probablemente ya se trato algo relacionado con tu duda. Revisalos, si te sirven todo bien en caso contrario preguntas nuevamente y alguien (algun guru) te respondera para tus dudas.

Saludos coloreados! :)

MaxiDucoli
03-06-2012, 04:14:17
En la parte de baja de este mensaje existe una seccion llamada Temas Similares en los que probablemente ya se trato algo relacionado con tu duda. Revisalos, si te sirven todo bien en caso contrario preguntas nuevamente y alguien (algun guru) te respondera para tus dudas.

Saludos coloreados! :)

Hola! Gracias por la idea!
No encontré nada de lo que estoy buscando, ni parecido. Y la verdad es pienso y pienso y no se me ocurre como puedo hacer o ver algo "Similar" al color y que lo catalogue como color necesario :p
Bueno!
A seguir pensando!! :)
Saludos!

ecfisa
03-06-2012, 08:57:32
Hola MaxiDucoli.

Realmente no entiendo bién lo que buscas hacer. Si es pasar el valor de la propiedad TColor a sus correspondientes valores RGB, podes hacer:

procedure TColorToRGB(Color: TColor; var R, G, B: Byte);
begin
if Color shr 24 = $FF then
Color := GetSysColor(Color and $FF)
else if Color shr 24 > $02 then
Color := 0;
R := Color;
G := Color shr 8;
B := Color shr 16;
end;


Llamada ejemplo:

procedure TForm1.Button1Click(Sender: TObject);
var
R,G,B: Byte;
begin
Label1.Color:= $0012D4D6; // un color cualquiera...
TColorToRGB(Label1.Color, R, G, B);
Caption:= Format('Red: %d - Green: %d - Blue: %d',[R, G, B])
end;


Saludos.

MaxiDucoli
07-06-2012, 02:01:57
Hola MaxiDucoli.

Realmente no entiendo bién lo que buscas hacer. Si es pasar el valor de la propiedad TColor a sus correspondientes valores RGB, podes hacer:
Código Delphi [-] (http://www.clubdelphi.com/foros/#)procedure TColorToRGB(Color: TColor; var R, G, B: Byte); begin if Color shr 24 = $FF then Color := GetSysColor(Color and $FF) else if Color shr 24 > $02 then Color := 0; R := Color; G := Color shr 8; B := Color shr 16; end;


Llamada ejemplo:
Código Delphi [-] (http://www.clubdelphi.com/foros/#)procedure TForm1.Button1Click(Sender: TObject); var R,G,B: Byte; begin Label1.Color:= $0012D4D6; // un color cualquiera... TColorToRGB(Label1.Color, R, G, B); Caption:= Format('Red: %d - Green: %d - Blue: %d',[R, G, B]) end;


Saludos.

No, eso ya lo sé hacer.
No sé como explicarme, en realidad por que no sé si existe.
ponele que tengo una gama de rojos, bueno, quiero pasarlo a "ROJO PURO".
Ejemplo:

rgb(190,10,30)
RGB(255,60,10)
RGB(200,50,30);

Yo lo que querría saber es cual es el "COLOR FUERTE" de ese RGB y ponerlo en color primario. RGB (255,0,0) entendés?

escafandra
08-06-2012, 07:02:44
Determinar el color fuerte es algo subjetivo... Cuando un componente predomina claramente, es sencillo pero ¿Cual es el color predominante del blanco RGB(255, 255, 255)?

Deberás establecer los puntos de corte o el % del color que consideras lo convierte en dominante. En los colores mas cercanos al blanco, al negro o a un color complementario a uno básico, tendrás problemas.


Saludos.

Yonomimi
21-06-2012, 19:25:36
Hola amigos...saludo a todo el mundo

MaxiDucoli ...no solo existe un modelo de prosamiento del color...uno de los mas habituales es el RGB o RGBA(incluye el factor alfa). Creo que tu mencionas un modelo de color que contempla un Tono con una Iluminacion y una Saturacion (HLS).

aqui tiene el enlace para que veas a que me refiero: http: // es . wikipedia . org / wiki / Modelo_de_color_HSL

espero que te sirva de algo... saludos