Я сделал быструю форму JSfiddle, который позволяет для преобразования из 8-значного шестнадцатеричного кода в значения CSS rgba;)
https://jsfiddle.net/teddyrised/g02s07n4/embedded/result/
Основа довольно проста - разделить строку, которую вы предоставили на части из 2-х цифр, и выполнить преобразование в процентное соотношение для альфа-канала и к десятичным знакам для каналов RGB. Разметки выглядит следующим образом:
<form action="">
<select id="format">
<option value="rgba">RGBa: RRGGBBAA</option>
<option value="argb">aRGB: AARRGGBB</option>
</select>
<input type="text" id="hex" value="#949494E8" />
<button>Convert</button>
</form>
<p id="rgba"></p>
логика:
// Remove hash
var hex = $('#hex').val().slice(1);
// Split to four channels
var c = hex.match(/.{1,2}/g);
// Function: to decimals (for RGB)
var d = function(v) {
return parseInt(v, 16);
};
// Function: to percentage (for alpha), to 3 decimals
var p = function(v) {
return parseFloat(parseInt((parseInt(v, 16)/255)*1000)/1000);
};
// Check format: if it's argb, pop the alpha value from the end and move it to front
var a, rgb=[];
if($('#format').val() == 'argb') {
c.unshift(c.pop());
}
// Convert array into rgba values
a = p(c[3]);
$.each(c.slice(0,3), function(i,v) {
rgb.push(d(v));
});
Суть преобразования состоит в следующем:
- Преобразование RGB каналов в шестнадцатеричной системе, в десятичных значений. Это делается с помощью
parseInt(hexValue, 16)
.
- Преобразование альфа-канала в шестнадцатеричном виде в процентное соотношение. Это делается путем простого преобразования его в десятичные значения (см. Выше) и вычисления его относительного значения до 255.
Как вы собираетесь их конвертировать? Рукой? Использование препроцессора? Программно, используя какой язык? – BoltClock
Кроме того, ваш синтаксис кажется неправильным. 8-разрядный шестиугольник обычно следует за форматом AARRGGBB ([ARGB] (http://en.wikipedia.org/wiki/RGBA_color_space#ARGB)), то есть первые две цифры относятся к альфа-каналам. Похоже, вы используете последние две цифры для альфа-канала. – Terry
http://bricss.net/post/12423845540/working-with-8-digit-hex-colors-argb-in-internet –