从RGB中删除所有黑色为透明

时间:2017-01-23 12:32:59

标签: android android-studio colors rgb hsv

这有点难以解释但是这里......

我需要一种方法让所有黑色都从一种颜色中获取,这样它就更像真光。

因此,例如我希望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]);
}

有什么想法吗?

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\Migraterg的最大值。 b

如果int max = Math.max(r(Math.max(g,b))跳过第2步和第3步

2)除以max == 0255

3)通过缺少alpha来缩放每个值:float alpha = max / 255f;

4)创建新颜色r = (int) (r * (1 / alpha))