elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  convertir long a rgb
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: convertir long a rgb  (Leído 5,907 veces)
<[(x)]>

Desconectado Desconectado

Mensajes: 215



Ver Perfil
convertir long a rgb
« en: 27 Febrero 2009, 22:03 pm »



holas
 
 Armando una app estoy necesitando convertir un color en formato long a rgb.

 hasta hay todo bien pero cuando voy a la practica.

 Este es el code que uso

 
Código
  1.  Azul = (Color And 16711680) / 65536
  2.  Verde = (Color And 65280) / 256
  3.  Rojo = Color And 255
  4.  

  Dando le a 'Color' el valor '&H8000000F',
  'Azul' queda con el valor '0'
  'Verde ' queda con el valor '0'
  'Rojo' queda con el valor '15'
   
 que pasa, este color es kasi un negro y el color   '&H8000000F', no

 lo que necesito es algún método que funcione bien ..
 espero no haber sido muy cargoso y gracias por la atención.



En línea

<[(x)]>
LeandroA
Moderador
***
Desconectado Desconectado

Mensajes: 760


www.leandroascierto.com


Ver Perfil WWW
Re: convertir long a rgb
« Respuesta #1 en: 27 Febrero 2009, 23:04 pm »

Código:
   lB = (lColor And &HFF0000) \ &H10000
   lG = (lColor And &HFF00&) \ &H100
   lR = (lColor And &HFF)


En línea

<[(x)]>

Desconectado Desconectado

Mensajes: 215



Ver Perfil
Re: convertir long a rgb
« Respuesta #2 en: 28 Febrero 2009, 01:21 am »

Graciass  LeandroA

Seguí buscando (como siempre) y encontré estop.

Código
  1.  
  2.  
  3. 'in VB, a long integer representing color is created from RGB values:
  4. Color = B   *  &FF00&     +   G   * &HFF&   +   R
  5. 'or this without Hex notation
  6. Color = (256 * 256 * B)   + G * 256 + R
  7.  
  8. 'the bult-in VB function RGB can calculate the Long value for you
  9. Color = RGB (R,G,B)
  10.  
  11. 'to get the RGB from a long
  12. Function Color_to_RGB (Color As Long , R As Integer , G As Integer , B As Integer ) As Long
  13.  R = Color And &HFF&                                    
  14.  G = (Color And &HFF00&) \ &H100&              
  15.  B = (Color & And &HFF0000) \ &H10000          
  16.   'or
  17.  R = Color Mod 256
  18.  G = (Color \ 256 ) Mod 256
  19.  B = (Color \ 256 \ 256 ) Mod 256
  20. End Function
  21.  
  22. 'in VB colors > &H80000000 are systems colors - which must be
  23. 'interpreted by VB - they are not standard Long color values!
  24. 'use the GetSysColor API to return the true long value of a system color
  25. Private Declare GetSysColor Lib "user32" ( ByVal nIndex As Long ) As Long
  26. iColor = GetSysColor (iColor And &HFFFFFF)
  27.  
  28. 'values of R, G, B can be used to  as BBGGRR to form a hex representation of a color that VB understands
  29. 'so, for R = "F0",  G="A3, and B = "2F, the hex representation in VB becomes BBGGRR:
  30. &H2FA3F0
  31.  
  32. 'to get the VB hex string for a color from the Long or RGB
  33. VBColorHexString = Right$( "000000" & Hex $( Color), 6)
  34. VBColorHexString = Right$( "000000" & Hex $( R + 256 * (G + 256 * B ), 6)
  35.  
  36. 'Note:  The Internet and other applications use RRGGBB for the hex format of a color
  37. WebColorHexString = Right$( "000000" & Hex $( B + 256 * (G + 256 * R ), 6)
  38.  
  39. 'to get the Web hex color string from the VB hex color string, swap the first 2 and last 2 character strings
  40. WebColorHexString = Right$(VBHexColorString, 2) & Mid $(VBColorHexString, 3, 2) & Left$(VBHexColorString, 2)
  41.  
  42.  

  Fuente  no hay mucho mas.
« Última modificación: 28 Febrero 2009, 01:23 am por <[(x)]> » En línea

<[(x)]>
hechelion

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Re: convertir long a rgb
« Respuesta #3 en: 5 Marzo 2009, 07:56 am »

me alegro que encontraras la solución a tu problema, pero si te das cuenta en tu primer post el valor
&H8000000F no es un color RGB y de ahí que cuando intentas pasarlo por la función RGB que creaste te de un valor completamente distinto.

incluso, en el código que posteas sale perfectamente explicado:

'in VB colors > &H80000000 are systems colors - which must be   
'interpreted by VB - they are not standard Long color values!   
'use the GetSysColor API to return the true long value of a system color   
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[RETO] IsFibonacciNumber(N as long) as Boolean « 1 2 3 »
Programación Visual Basic
79137913 28 14,891 Último mensaje 16 Febrero 2011, 19:04 pm
por 79137913
Convertir de Long a Binario « 1 2 »
Programación C/C++
BlaineMonkey 10 6,949 Último mensaje 22 Junio 2011, 19:05 pm
por BlackZeroX
Arrays de chars to long long
Programación C/C++
Xedrox 0 1,602 Último mensaje 24 Diciembre 2012, 01:03 am
por Xedrox
Long long to char
Programación C/C++
Xedrox 3 2,831 Último mensaje 5 Agosto 2013, 10:15 am
por amchacon
problemas con long long int
Programación C/C++
m@o_614 7 3,972 Último mensaje 13 Marzo 2014, 17:59 pm
por Yoel Alejandro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines