Autor Tema: Convertir hexadecimal a RBG  (Leído 612 veces)

Futu-block

  • Hero Member
  • *****
  • Mensajes: 2863
  • Karma: 34
  • Superviviente marciano
    • futublock
Convertir hexadecimal a RBG
« en: Enero 21, 2019, 06:46:36 pm »
Pos eso, necesito convertir los colores de RGB a hexadecimal, mas que nada por el tema de que es mas rápido guardar un #ffcc99 que un 245,45,128
Si no se puede po nada
aunque tambien me gustaría trabajar en 8 bits porque son 256 colores y es todavía mas facil... ¿no? alguna pista? una Url a un tuto o algo, la wiki

FreeYourMind

  • Hero Member
  • *****
  • Mensajes: 5680
  • Karma: 127
    • GECA soft
Re:Convertir hexadecimal a RBG
« Respuesta #1 en: Enero 22, 2019, 07:59:53 am »
seleciona el color en photoshop y mira los valores hexadecimales

Futu-block

  • Hero Member
  • *****
  • Mensajes: 2863
  • Karma: 34
  • Superviviente marciano
    • futublock
Re:Convertir hexadecimal a RBG
« Respuesta #2 en: Enero 22, 2019, 09:31:19 am »
ja ja ja, no hombre, algun algoritmo de conversión

FreeYourMind

  • Hero Member
  • *****
  • Mensajes: 5680
  • Karma: 127
    • GECA soft
Re:Convertir hexadecimal a RBG
« Respuesta #3 en: Enero 22, 2019, 10:18:55 am »
los vas apuntando y al final te creas una tabla de relacion xD

Futu-block

  • Hero Member
  • *****
  • Mensajes: 2863
  • Karma: 34
  • Superviviente marciano
    • futublock
Re:Convertir hexadecimal a RBG
« Respuesta #4 en: Enero 22, 2019, 11:06:56 am »
buf, que trabajoso, chiquillo...

Onde andas? perdío man
-----------------0-------------------
bueno, creo que al final usaré los 8 bits, dejo un .prg tó tosco hecho ajín tó rápido para quien lo necesite tenga una idea de como rula el tema...


Aunque sigo buscando el tema de pasar a hexadecimal porque tiene hasta 16.777.216 combinaciones y eso es muy interesante pero las página web no muestran mas de 216 colores, creo, y mi principal intención va a ser la web, me basta con los 8 bits pero no quiero dejar pasar el algoritmo de conversión
« última modificación: Enero 22, 2019, 11:44:01 am por Futu-block »

darío

  • Sr. Member
  • ****
  • Mensajes: 458
  • Karma: 48
Re:Convertir hexadecimal a RBG
« Respuesta #5 en: Enero 24, 2019, 09:15:17 pm »
Si tienes un color ARGB con alpha no premultiplicado y con 8 bits por canal (num de 32bits), el algoritmo es:
Código: [Seleccionar]
alpha = (color >> 24) & 0xFF
R = (color >> 16) & 0xFF
G = (color >> 8) & 0xFF
B = color & 0xFF
>> hace una rotación de bits a la derecha, con lo que pones los 8 bits correspondientes a la componente en el byte menos significante. Luego le applicas un and lógico para sacar únicamente esos bits.Tienes un byte en cada componente. La representación hexadecimal de cada componente es lo que estás buscando.
« última modificación: Enero 24, 2019, 09:18:07 pm por darío »
My sites:
Smart Fpg Editor - Painless FPG Edition for Bennu and PixTudio
fenixlib - .NET support for manipulating PixTudio, Bennu and Div graphic formats

gecko

  • Hero Member
  • *****
  • Mensajes: 809
  • Karma: 47
    • Torres Baldi Studio
Re:Convertir hexadecimal a RBG
« Respuesta #6 en: Enero 24, 2019, 09:58:18 pm »
Le dediqué un rato a este problema porque me pareció interesante intentar resolverlo con código BennuGD.

Aunque me quedo algo más complicado de lo que me gustaría, llegué a un punto en el que parece funcionar, así que lo comparto.

https://github.com/TorresBaldi/color-converter

En el main.prg estoy probando con un ejemplo, y el uso quedaría:

Código: [Seleccionar]
// me devuelve "#AF4EA1"
color_converter_rgb2hex(175,78,161);

// cada una de estas funciones me devuelve un componente del color RGB
color_converter_hex2dec("af4ea1", R_COMPONENT); // 175
color_converter_hex2dec("#AF4EA1", G_COMPONENT); // 78
color_converter_hex2dec("aF4ea1", B_COMPONENT); // 161

(R_COMPONENT, G_COMPONENT y b_COMPONENT son opcionales, se podria usar directamente 0, 1 y 2)

Espero te sirva.
Torres Baldi Studio
http://torresbaldi.com

Futu-block

  • Hero Member
  • *****
  • Mensajes: 2863
  • Karma: 34
  • Superviviente marciano
    • futublock
Re:Convertir hexadecimal a RBG
« Respuesta #7 en: Enero 25, 2019, 08:33:04 am »
gracias a los dos, estoy estudiando los códigos por si tengo que saltar de los 8 bits a... 32? je je