正如维基百科文章所述(假设背景不透明):
int r, g, b;
r = fgColor.getRed() * fgColor.getAlpha() + bgColor.getRed() * (255 - fgColor.getAlpha());
g = fgColor.getGreen() * fgColor.getAlpha() + bgColor.getGreen() * (255 - fgColor.getAlpha());
b = fgColor.getBlue() * fgColor.getAlpha() + bgColor.getBlue() * (255 - fgColor.getAlpha());
Color result = new Color(r / 255, g / 255, b / 255);
Run Code Online (Sandbox Code Playgroud)
免责声明:尚未对此进行测试但应该可行.
如果前景色是常量(例如填充的透明矩形),则可以通过预计算fgColor.getComponent() * fgColor.getAlpha()和优化来优化(255 - fgColor.getAlpha()).
| 归档时间: |
|
| 查看次数: |
2016 次 |
| 最近记录: |