Przezroczysta wartość szesnastkowa ARGB

160

Kolory w tej tabeli nie są przezroczyste. Domyślam się, że wartość Ajest ustawiona na FF.

Jaki jest kod przejrzystości?

Na przykład ten kolor FFF0F8FF (AliceBlue), do przezroczystego kodu, takiego jak ??F0F8FF?

user3332579
źródło
Wreszcie istnieje sposób na ustawienie przezroczystego koloru za pomocą kodu szesnastkowego dla niektórych przeglądarek (nowa funkcja). Proszę spojrzeć na stackoverflow.com/a/60876347/2457251
Almir Campos

Odpowiedzi:

199

Przezroczystość jest kontrolowana przez kanał alfa ( AAin #AARRGGBB). Maksymalna wartość (255 dec, szesnastkowa FF) oznacza całkowicie nieprzezroczysty. Minimalna wartość (0 dec, 00 hex) oznacza pełną przezroczystość. Wartości pomiędzy są półprzezroczyste, tj. Kolor jest mieszany z kolorem tła.

Aby uzyskać w pełni przezroczysty kolor, ustaw wartość alfa na zero. RR, GGi nie BBmają w tym przypadku znaczenia, ponieważ kolor nie będzie widoczny. Oznacza to, że #00FFFFFF(„przezroczysty biały”) ma taki sam kolor jak #00F0F8FF(„przezroczysty AliceBlue”). Aby zachować prostotę, wybiera się czarny ( #00000000) lub biały ( #00FFFFFF), jeśli kolor nie ma znaczenia.

W tabeli, do której jesteś podłączony, znajdziesz Transparentdefinicję jako #00FFFFFF.

Haker
źródło
2
powiedzmy, że potrzebuję krycia 50%. Jaki jest kod dla koloru białego z kryciem / przezroczystością 50%?
user3332579
10
@ user3332579: 50% jest 7F. Ustaw kalkulator w trybie szesnastkowym, zrobi to za Ciebie.
theHacker
1
@ user3332579: Więc 50% bieli jest #7FFFFFFF.
theHacker
6
Format to #RRGGBBAA Hex8 (lub #RGBA in Hex4) i NIE #AARRGGBB (lub #ARGB) Testowałem w Chrome 62,63,64 Patrz CanIUse.com , https://css-tricks.com/8- cyfry-szesnastkowe / , stan funkcji Chrome
SGS Sandhu
3
@SGSSandhu Pytanie nie jest skierowane do CSS. Zobacz pytanie ponownie, format to ARGB.
theHacker
506

Oto tabela z% do wartości szesnastkowych:

Przykład : w przypadku 85% bieli należy użyć #D9FFFFFF. Tutaj 85% = „D9” & White = „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

Jak to jest obliczane?

FF to liczba zapisana w trybie szesnastkowym. Ta liczba reprezentuje 255 dziesiętnie. Na przykład, jeśli chcesz obliczyć 42%, musisz znaleźć 42% liczby 255 i przekonwertować tę liczbę na szesnastkową. 255 * 0,42 ~ = 107 107 do hex to "6B - maleta

Shivaraj Patil
źródło
3
jak to obliczasz?
Saeed Jassani
35
@SaeedJassani FF to liczba zapisana w trybie szesnastkowym. Ta liczba reprezentuje 255 dziesiętnie. Na przykład, jeśli chcesz obliczyć 42%, musisz znaleźć 42% liczby 255 i przekonwertować tę liczbę na szesnastkową. 255 * 0,42 ~ = 107 107 do hex to "6B"
maleta
1
@Maleta Wielkie dzięki
Saeed Jassani
10

Dodając do innych odpowiedzi i nie robiąc nic więcej z tego, co @Maleta wyjaśnił w komentarzu na https://stackoverflow.com/a/28481374/1626594 , robiąc alfa * 255, a następnie zaokrąglając do szesnastkowej . Oto szybki konwerter 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>

Społeczność
źródło
2

Po prostu użyj tego:

android: background = "# 00FFFFFF"

wykona twoją pracę.

Aditya Singh Rajput
źródło
1

Jeśli masz swoją wartość szesnastkową i zastanawiasz się, jaka byłaby wartość alfa, ten fragment może pomóc:

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));

Raphael Aleixo
źródło