online hexadecimal hexa google convertir convert color html css colors hex rgba

html - hexadecimal - rgb to hex javascript



Convertir RGBA a HEX (4)

Dado un valor de color css como:

rgba(0, 0, 0, 0.86)

¿Cómo lo convierto en un valor hexadecimal RGB que tenga en cuenta el componente alfa, asumiendo un fondo blanco?


Dado que el valor alfa atenúa el color de fondo y el valor del color, algo como esto podría hacer el truco:

function rgba2rgb(RGB_background, RGBA_color) { var alpha = RGBA_color.a; return new Color( (1 - alpha) * RGB_background.r + alpha * RGBA_color.r, (1 - alpha) * RGB_background.g + alpha * RGBA_color.g, (1 - alpha) * RGB_background.b + alpha * RGBA_color.b ); }

(Pruébelo de manera interactiva: http://marcodiiga.github.io/rgba-to-rgb-conversion )


El valor rgba que tiene es: rgba (0, 0, 0, 0.86)

El primer 0 significa RED
Segundo 0 significa VERDE
Tercer 0 significa AZUL
y el último dígito 0.86 significa alfa / opacidad

Aquí hay algunos enlaces para rgb a hex convertidor:

http://www.javascripter.net/faq/rgbtohex.htm
http://www.rgbtohex.net/
http://www.yellowpipe.com/yis/tools/hex-to-rgb/color-converter.php

con sus dígitos 0, 0, 0. El código hexadecimal será

#000000

A continuación se muestra el código de baja opacidad con fondo blanco.

HTML

<div id="parentDiv"> <div id="childDiv"> </div> </div>

CSS

#parentDiv { height:100px; /* The property of Child is Inherit */ width:100px; /* The property of Child is Inherit*/ background-color:#ffffff; } #childDiv { height:inherit; width:inherit; background-color:#000000; opacity:0.86; filter:alpha(opacity="86"); }

Ahora el div padre es el fondo con

#ffffff (White color)


Suponiendo que los valores son 0 ... 1 por canal. Y suponiendo que la abreviatura en la llamada de método / función en la pregunta corresponda a los argumentos, lo siguiente debería funcionar.

A = 255 * 0.86 R = 255 * 0 G = 255 * 0 B = 255 * 0

Tenga en cuenta que es posible que desee cambiar la forma en que se redondea aquí, ya que puede dar errores en los colores.

En este punto, los valores son, de hecho, valores de punto flotante, pero, en teoría, deberían funcionar en un byte o un carácter (según el idioma).

var _A = (byte)219.3 var _R = (byte)0 var _G = (byte)0 var _B = (byte)0

Ahora todo lo que tienes que hacer es convertirlos en una cadena hexadecimal cada uno, concatenarlos (ARGB) y poner una pequeña etiqueta hash en la parte delantera (#)

En C # podrías hacer algo parecido a:

var hexString = string.Format("#{0:X2}{1:X2}{2:X2}{3:X2}", _A, _R, _G, _B);

Dando un resultado final de algo como:

#DB000000


puede convertir rojo, verde y azul individualmente utilizando .toString(16) y luego combinar el resultado en un caso, si solo desea convertir un rgb a hex ... ya que está buscando convertir rgba a hex, pensé que sería Sería mejor convertir rgba a rgb y luego a hexadecimal como hice en el siguiente Fiddle , que también consideraría el background-color de background-color del div parent .