Giá trị hex ARGB trong suốt


160

Các màu sắc trong này bàn là tất cả không minh bạch. Tôi đoán giá trị cho Ađược đặt thành FF.

Mã cho sự minh bạch là gì?

Ví dụ màu này FFF0F8FF (AliceBlue), thành một mã trong suốt như ??F0F8FF?


Cuối cùng, có một cách để đặt màu trong suốt với mã hex cho một số trình duyệt nhất định (tính năng mới). Xin vui lòng, hãy xem stackoverflow.com/a/60876347/2457251
Almir Campos

Câu trả lời:


199

Độ trong suốt được kiểm soát bởi kênh alpha ( AAin #AARRGGBB). Giá trị tối đa (255 dec, FF hex) có nghĩa là hoàn toàn mờ đục. Giá trị tối thiểu (0 dec, 00 hex) có nghĩa là hoàn toàn minh bạch. Các giá trị ở giữa là bán trong suốt, tức là màu được trộn với màu nền.

Để có được màu hoàn toàn trong suốt, đặt alpha thành 0. RR, GGBBkhông liên quan trong trường hợp này vì không có màu sắc sẽ được hiển thị. Điều này có nghĩa #00FFFFFF("Trắng trong suốt") có cùng màu với #00F0F8FF("AliceBlue trong suốt"). Để đơn giản, người ta chọn màu đen ( #00000000) hoặc trắng ( #00FFFFFF) nếu màu không quan trọng.

Trong bảng bạn đã liên kết với bạn sẽ tìm thấy Transparentđược xác định là #00FFFFFF.


2
giả sử tôi cần độ mờ 50%. Mã cho màu trắng với độ mờ 50% / trong suốt là gì?
dùng3332579

10
@ user3332579: 50% là 7F. Đặt máy tính của bạn ở chế độ hex, nó sẽ thực hiện các mẹo cho bạn.
theHacker

1
@ user3332579: Vậy là 50% màu trắng #7FFFFFFF.
theHacker

6
Định dạng là #RRGGBBAA Hex8 (hoặc #RGBA trong Hex4) và KHÔNG #AARRGGBB (hoặc #ARGB) Tôi đã thử nghiệm trong Chrome 62,63,64 Tham khảo CanIUse.com , https://css-tricks.com/8- chữ số-hex-mã / , Trạng thái tính năng của Chrome
SGS Sandhu

3
@SGSSandhu Câu hỏi không nhắm vào CSS. Xem lại câu hỏi, định dạng là ARGB.
Kẻ tấn công ngày

506

Dưới đây là bảng từ giá trị% đến hex:

Ví dụ : Đối với 85% màu trắng, bạn sẽ sử dụng #D9FFFFFF. Ở đây 85% = "D9" & Trắng = "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

Nó được tính như thế nào?

FF là số được viết ở chế độ hex. Con số đó đại diện cho 255 trong số thập phân. Ví dụ: nếu bạn muốn 42% để tính toán, bạn cần tìm 42% số 255 và chuyển đổi số đó thành hex. 255 * 0,42 ~ = 107 107 đến hex là "6B - maleta


3
Làm thế nào để bạn tính toán này?
Saeed Jassani

35
@SaeedJassani FF là số được viết ở chế độ hex. Con số đó đại diện cho 255 trong số thập phân. Ví dụ: nếu bạn muốn 42% để tính toán, bạn cần tìm 42% số chữ số 255 và chuyển đổi số đó thành hex. 255 * 0,42 ~ = 107 107 đến hex là "6B"
maleta

1
@Maleta Cảm ơn rất nhiều
Saeed Jassani

10

Thêm vào các câu trả lời khác và không làm gì thêm những gì @Maleta đã giải thích trong một nhận xét trên https://stackoverflow.com/a/28481374/1626594 , thực hiện alpha * 255 sau đó làm tròn sau đó thành hex . Đây là một công cụ chuyển đổi nhanh 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

Nếu bạn có giá trị hex của mình và bạn chỉ tự hỏi giá trị của alpha sẽ là gì, đoạn trích này có thể giúp:

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.