Convertir hexadecimal a RBG

Started by Futu-block, January 21, 2019, 06:46:36 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Futu-block

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

seleciona el color en photoshop y mira los valores hexadecimales

Futu-block

ja ja ja, no hombre, algun algoritmo de conversión

FreeYourMind

los vas apuntando y al final te creas una tabla de relacion xD

Futu-block

#4
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

darío

#5
Si tienes un color ARGB con alpha no premultiplicado y con 8 bits por canal (num de 32bits), el algoritmo es:

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.
My sites:
Smart Fpg Editor - Painless FPG Edition for Bennu and PixTudio
fenixlib - .NET support for manipulating PixTudio, Bennu and Div graphic formats

gecko

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:


// 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

gracias a los dos, estoy estudiando los códigos por si tengo que saltar de los 8 bits a... 32? je je