Bos*_*ude 6 java android colors
我有一种颜色 #6A8F6509
我希望删除该颜色的Alpha部分,只留下RGB组件(即#RRGGBB).
生成的颜色必须与没有透明度的初始颜色相同.
我如何在Android的Java上解决这个问题?
更新:初始背景始终为白色(#FFF)
Nik*_*nov 12
如果您想使用代码执行此操作,可以尝试以下代码:
static int stripAlpha(int color){
return Color.rgb(Color.red(color), Color.green(color), Color.blue(color));
}
Run Code Online (Sandbox Code Playgroud)
对于每种颜色:C'= C(a / 255)+ 255(1-(a / 255))
因此,对于#6A8F6509:
R'= 143(106/255)+ 255(1-(106/255)=(大约)208
G'= 101(106/255)+ 255(1-(106/255)=(大约)191
B'= 9(106/255)+ 255(1-(106/255)=(约)153
因此,如果我的数学正确,那么您的答案应该是:#D0BF99。这也仅适用于全白色背景-对于非白色背景,第二个加数应具有适当的背景颜色值,而不是255。
-编辑-
再次查看该公式,我不确定是将公式应用于每种颜色还是整个颜色(快速的视觉测试应该能够告诉您-我在猜测每种颜色)。我应该指出,这是直接来自Alpha合成Wiki页面的公式:
http://en.wikipedia.org/wiki/Alpha_compositing#Alpha_blending
| 归档时间: |
|
| 查看次数: |
5864 次 |
| 最近记录: |