【转】 聊聊Color中的alpha值

转载文章

【转】 聊聊Color中的alpha值

java/awt/Color.java

1
2
3
4
5
6
7
8
@ConstructorProperties({"red", "green", "blue", "alpha"})
public Color(int r, int g, int b, int a) {
value = ((a & 0xFF) << 24) |
((r & 0xFF) << 16) |
((g & 0xFF) << 8) |
((b & 0xFF) << 0);
testColorValueRange(r,g,b,a);
}

alpha指不透明度,其值范围为0-255,越大越不透明,通常对应opacity,这个就是单词语义表达的不透明度,其值范围[0,1.0f],值越大,越不透明。

opacity与alpha的映射

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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
1
2
3
4
5
6
int alpha = Math.round(opacity * 255);
//再将int输出为十六进制的表示方式,不足两位往前补零
String hex = Integer.toHexString(alpha).toUpperCase();
if (hex.length() == 1){
hex = "0" + hex;
}