I colori in questa tabella non sono tutti trasparenti. Suppongo che il valore per A
sia impostato su FF
.
Qual è il codice per la trasparenza?
Ad esempio questo colore FFF0F8FF (AliceBlue), ad un codice trasparente quale ??F0F8FF
?
I colori in questa tabella non sono tutti trasparenti. Suppongo che il valore per A
sia impostato su FF
.
Qual è il codice per la trasparenza?
Ad esempio questo colore FFF0F8FF (AliceBlue), ad un codice trasparente quale ??F0F8FF
?
Risposte:
La trasparenza è controllata dal canale alfa ( AA
in #AARRGGBB
). Il valore massimo (255 dec, hex FF) significa completamente opaco. Il valore minimo (0 dic, 00 hex) significa completamente trasparente. I valori intermedi sono semitrasparenti, ovvero il colore viene mescolato con il colore di sfondo.
Per ottenere un colore completamente trasparente, impostare l'alfa su zero. RR
, GG
E BB
sono irrilevanti in questo caso perché nessun colore sarà visibile. Ciò significa che #00FFFFFF
("bianco trasparente") ha lo stesso colore di #00F0F8FF
("AliceBlue trasparente"). Per mantenerlo semplice si sceglie nero ( #00000000
) o bianco ( #00FFFFFF
) se il colore non ha importanza.
Nella tabella a cui ti sei collegato troverai Transparent
definito come #00FFFFFF
.
7F
. Metti la tua calcolatrice in modalità esadecimale, farà il trucco per te.
#7FFFFFFF
.
Ecco la tabella dei valori da% a esadecimali:
Esempio : per l'85% di bianco, si utilizzerà #D9FFFFFF
.
Qui 85% = "D9" e bianco = "FFFFFF"
100% — FF
95% — F2
90% — E6
85% — D9
80% — CC
75% — BF
70% — B3
65% — A6
60% — 99
55% — 8C
50% — 80
45% — 73
40% — 66
35% — 59
30% — 4D
25% — 40
20% — 33
15% — 26
10% — 1A
5% — 0D
0% — 00
Come viene calcolato?
FF è il numero scritto in modalità esadecimale. Quel numero rappresenta 255 in decimale. Ad esempio, se si desidera calcolare il 42%, è necessario trovare il 42% del numero 255 e convertire quel numero in esadecimale. 255 * 0.42 ~ = 107 107 a esadecimale è "6B - maleta
Aggiungendo alle altre risposte e non facendo altro che ciò che @Maleta ha spiegato in un commento su https://stackoverflow.com/a/28481374/1626594 , facendo alpha * 255 poi arrotondando poi a hex . Ecco un convertitore rapido http://jsfiddle.net/8ajxdLap/4/
function rgb2hex(rgb) {
var rgbm = rgb.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?((?:[0-9]*[.])?[0-9]+)[\s+]?\)/i);
if (rgbm && rgbm.length === 5) {
return "#" +
('0' + Math.round(parseFloat(rgbm[4], 10) * 255).toString(16).toUpperCase()).slice(-2) +
("0" + parseInt(rgbm[1], 10).toString(16).toUpperCase()).slice(-2) +
("0" + parseInt(rgbm[2], 10).toString(16).toUpperCase()).slice(-2) +
("0" + parseInt(rgbm[3], 10).toString(16).toUpperCase()).slice(-2);
} else {
var rgbm = rgb.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i);
if (rgbm && rgbm.length === 4) {
return "#" +
("0" + parseInt(rgbm[1], 10).toString(16).toUpperCase()).slice(-2) +
("0" + parseInt(rgbm[2], 10).toString(16).toUpperCase()).slice(-2) +
("0" + parseInt(rgbm[3], 10).toString(16).toUpperCase()).slice(-2);
} else {
return "cant parse that";
}
}
}
$('button').click(function() {
var hex = rgb2hex($('#in_tb').val());
$('#in_tb_result').html(hex);
});
body {
padding: 20px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Convert RGB/RGBA to hex #RRGGBB/#AARRGGBB:<br>
<br>
<input id="in_tb" type="text" value="rgba(200, 90, 34, 0.75)"> <button>Convert</button><br>
<br> Result: <span id="in_tb_result"></span>
Usa questo:
Android: background = "# 00FFFFFF"
farà il tuo lavoro.
Se hai il tuo valore esadecimale e ti stai solo chiedendo quale sarebbe il valore per l'alfa, questo frammento può aiutare:
const alphaToHex = (alpha => {
if (alpha > 1 || alpha < 0 || isNaN(alpha)) {
throw new Error('The argument must be a number between 0 and 1');
}
return Math.ceil(255 * alpha).toString(16).toUpperCase();
})
console.log(alphaToHex(0.45));