这有点难以解释但是这里......
我需要一种方法让所有黑色都从一种颜色中获取,这样它就更像真光。
因此,例如我希望RGB(0,0,0)为透明而不是黑色,而RGB(127,127,127)为白色,透明度为50%而不是灰色。
目前我正在使用它:
public static int getHexColor(int[] color) {
return android.graphics.Color.rgb(color[0], color[1], color[2]);
}
有什么想法吗?
答案 0 :(得分:0)
这可以通过
来完成Color.parseColor("#AARRGGBB");
AA
是颜色的不透明度。因此,您可以获取颜色的十六进制值,并将此不透明度值之一添加到十六进制的开头。
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
感谢@Duggu的不透明度值。
答案 1 :(得分:0)
我会建议:
1)获得C:\Users\Public\Documents\Embarcadero\Studio\18.0\Samples\Object Pascal\Database\Fire DAC\Samples\Comp Layer\TFD Batch Move\Migrate
,r
和g
的最大值。 b
如果int max = Math.max(r(Math.max(g,b))
跳过第2步和第3步
2)除以max == 0
:255
3)通过缺少alpha来缩放每个值:float alpha = max / 255f;
4)创建新颜色r = (int) (r * (1 / alpha))