SoloCodigo

CLR: .Net / Mono / Boo / Otros CLR => VB .NET => Mensaje iniciado por: Soultaker en Sábado 4 de Septiembre de 2004, 04:51

Título: Rgb & Hexadecimal
Publicado por: Soultaker en Sábado 4 de Septiembre de 2004, 04:51
Hola una pregunta como se puede hayar el rgb de un color, lo que quiero hacer es que en un objeto picture coloque una imagen cualquiera y luego al hacer clic me mande el rgb de donde hice clic, y tambien me gustaria hayar el hexadecimal del color, si alguien conoce alguna forma a ver si me la pueden responder. Thank you so much.
Título: Re: Rgb & Hexadecimal
Publicado por: JuanK en Sábado 4 de Septiembre de 2004, 05:03
depende de la densidad del color..
es decir depende si es de 8, 16, 24, 32, 15 bits

para el caso de 24 bits es asi:

Dado que el color tiene las componentes RGB cada byte representaria un componente as:
ejemplo para color blanco
Código: Text
  1.  
  2.    R        G        B
  3. 11111111-11111111-11111111
  4.  
  5.  

cada byte puede ser representado en con dos numeros hexa :

ejemplo para color blanco
Código: Text
  1.  
  2.     R         G         B
  3. 1111.1111-1111.1111-1111.1111
  4.  F     F    F    F    F   F  =0xFFFFFF = 16'777.215
  5.  
  6.  

De este modo  seria el color morado:
Código: Text
  1.  
  2.     R         G         B
  3. 1111.1111-0000.0000-1111.1111
  4.  F    F     0   0     F   F  =0xFF00FF = 16'711.935
  5.  
  6.  

Esta es la teoria... en la practica no existen tipos de datos de 24 bits.. pero en general un dato tipo int es de 32 bits asi que para el ejemplo del morado seria asi:
0x00FF00FF

Logicamente para cada tipo de color hay variantes, asi pues en el caso del color de 32 bits el primer byte representa el canal alfa, y en el color de 16 bits se reparte todo en grupos de 5 bytes y uno adicional que se me olvido para que era  :blink:  y asi segun el tipo de color.
Título: Re: Rgb & Hexadecimal
Publicado por: sergiotarrillo en Domingo 5 de Septiembre de 2004, 01:08
pero como seria el programa,.... Facil seria capturar la posicion donde hizo click, pero sacar ese patron y capturar su color, ...... lo veo un poco tranca, tendrias que sacar solo ese punto, lo que propondria seria copiar el color, y guardarlo.... para despues usarlo...