Bu tablodaki renklerin hepsi saydam değildir. Sanırım değeri A
ayarlanmış FF
.
Şeffaflık kodu nedir?
Örneğin bu renk FFF0F8FF (AliceBlue) gibi şeffaf bir koda ??F0F8FF
?
Bu tablodaki renklerin hepsi saydam değildir. Sanırım değeri A
ayarlanmış FF
.
Şeffaflık kodu nedir?
Örneğin bu renk FFF0F8FF (AliceBlue) gibi şeffaf bir koda ??F0F8FF
?
Yanıtlar:
Şeffaflık, alfa kanalı ( AA
in #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
, GG
Ve BB
hiç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 Transparent
olarak tanımlanmış olarak bulacaksınız #00FFFFFF
.
7F
. Hesap makinenizi onaltılık moda koyun, işinizi görecektir.
#7FFFFFFF
.
İş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
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>
Sadece şunu kullanın:
android: background = "# 00FFFFFF"
işinizi yapacak.
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));