2017-02-12 261 views
1

我得到#AARRGGBB颜色从转换ARGB到RGB,并获得相同的颜色

int getColor=bitmap.getPixel() 

(位图是ARGB_8888)

作为例子,的getColor值为:#20000000(浅灰色) 我需要在#RRGGBB中获得相同的颜色,例如#BDBDBD(浅灰色)。

我该怎么做?

+1

#20000000是黑色的,不是浅灰色。由于它是半透明的,因此如果绘制在白色之上,它可能变成浅灰色。那是你要的吗?获得在白色上绘制颜色的结果? –

+0

哦,我知道它是黑色#000000。但有什么方法可以在#rrggbb中获得完全的颜色(我看到的颜色),没有alpha,或者它的虚幻? – Lokie

+0

取决于你所看到的含义。正如我所说,如果它在白色之上,你会看到一件事。在黑色的顶部,你会看到黑色。它本身总是黑色的。如果你想在白色的基础上,然后基于阿尔法白色混合。 –

回答

0

如果您希望将该颜色置于白色之上时出现的颜色,则必须将其混合。由于alpha是0x20,因此您将该颜色乘以0x20,将白色乘以0xff-0x20,然后将它们相加。

当然,分别对R,G和B做这个。

+0

非常感谢你的配合。 – Lokie

+0

萨米我很抱歉打扰你,但你可以写一些例子。也许有些 public void colorOnTopOfWhite(String argbHex),或者类似的。我最近学习java,所以我需要帮助。再次抱歉。 – Lokie

+0

对不起public String not void – Lokie