Şeffaf ARGB onaltılık değer


160

Bu tablodaki renklerin hepsi saydam değildir. Sanırım değeri Aayarlanmış FF.

Şeffaflık kodu nedir?

Örneğin bu renk FFF0F8FF (AliceBlue) gibi şeffaf bir koda ??F0F8FF?


Son olarak, belirli tarayıcılar için onaltılık kodla saydam renk ayarlamanın bir yolu vardır (yeni özellik). Lütfen stackoverflow.com/a/60876347/2457251
Almir Campos

Yanıtlar:


199

Şeffaflık, alfa kanalı ( AAin #AARRGGBB) tarafından kontrol edilir . Maksimal değer (255 dec, FF hex) tamamen opak anlamına gelir. Minimum değer (0 dec, 00 hex) tamamen saydam demektir. Aradaki değerler yarı saydamdır, yani renk arka plan rengiyle karıştırılır.

Tamamen saydam bir renk elde etmek için alfa sıfıra ayarlanır. RR, GGVe BBhiçbir renk görünür olacaktır çünkü bu durumda alakasız. Yani #00FFFFFF("şeffaf Beyaz") #00F0F8FF("şeffaf AliceBlue") ile aynı renktedir . Basit tutmak için renk önemli değilse siyah ( #00000000) veya beyaz ( #00FFFFFF) seçilebilir.

Bağlantı verdiğiniz tabloda Transparentolarak tanımlanmış olarak bulacaksınız #00FFFFFF.


2
diyelim ki% 50 opaklığa ihtiyacım var. % 50 opaklık / şeffaf beyaz renk kodu nedir?
user3332579

10
@ user3332579:% 50'dir 7F. Hesap makinenizi onaltılık moda koyun, işinizi görecektir.
theHacker

1
@ user3332579: Yani% 50 beyaz #7FFFFFFF.
theHacker

6
Biçim #RRGGBBAA Hex8 (veya Hex4'te #RGBA) ve #AARRGGBB (veya #ARGB) DEĞİL . Chrome'da test ettim 62,63,64 Bkz. CanIUse.com , https://css-tricks.com/8- basamaklı hex kodları / , Chrome Özellik Durumu
SGS Sandhu

3
@SGSSandhu Soru CSS'yi hedeflemiyor. Soruya tekrar bakın, format ARGB.
theHacker

506

İşte% - hex değerleri tablosu:

Örnek :% 85 beyaz için kullanırsınız #D9FFFFFF. Burada% 85 = "D9" ve Beyaz = "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

Nasıl hesaplanır?

FF onaltılık modda yazılan sayıdır. Bu sayı ondalık olarak 255'i temsil eder. Örneğin,% 42'nin hesaplamasını istiyorsanız, 255 numarasının% 42'sini bulmanız ve bu sayıyı onaltılık biçime dönüştürmeniz gerekir. 255 * 0,42 ~ = 107107 ila hex "6B - maleta


3
bunu nasıl hesaplıyorsun?
Saeed Jassani

35
@SaeedJassani FF onaltılık modda yazılan sayıdır. Bu sayı ondalık olarak 255'i temsil eder. Örneğin,% 42'nin hesaplamasını istiyorsanız, 255 numarasının% 42'sini bulmanız ve bu sayıyı onaltılık biçime dönüştürmeniz gerekir. 255 * 0,42 ~ =
107107

1
Male Çok teşekkürler
Saeed Jassani

10

Diğer cevaplara ekleme ve @Maleta'nın https://stackoverflow.com/a/28481374/1626594 adresindeki bir yorumda açıkladığı şeyden başka bir şey yapmadan, alfa * 255 yaparak sonra altıgen şeklinde yapın . İşte hızlı bir dönüştürücü 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>



1

Onaltılık değeriniz varsa ve alfa değerinin ne olacağını merak ediyorsanız, bu snippet yardımcı olabilir:

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

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.