このテーマで見つけたすべてのものは、16進数をrgbに変換してから1のアルファを追加するだけです。16進数からも目的のアルファを取得したいと思います。
#949494E8
や#DCDCDC8F
などの色は、明らかに0または1ではないアルファ値を持っています。
8桁の16進コードからCSS rgba値に変換できる簡単なJSfiddleフォームを作成しました;)
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.Push(c.shift());
}
// Convert array into rgba values
a = p(c[3]);
$.each(c.slice(0,3), function(i,v) {
rgb.Push(d(v));
});
_
変換の要点は次のとおりです。
parseInt(hexValue, 16)
を使用して行われます。これがあなたのための小さなツールチップです:
この場合 #DCDCDC8F
DC
はalpha
= 220、
16進数から10進数[DC]:
そして220/255 = 0.86の不透明度
バイトはAABBGGRRの順序でリトルエンディアンマシンのメモリに格納されます
これを確認してください: http://www.statman.info/conversions/hexadecimal.html