将带有底层颜色的 RGBA 转换为 RGB?
我在 Java 中转换颜色时遇到问题。简化的问题如下所示:
我的应用程序包含图像。我在这张图片上放置了重新调整。矩形的颜色定义为 new Color(255, 255, 0, 80)。
是否可以在没有 getPixelColor() 方法的情况下计算/转换屏幕上显示的颜色为没有 Alpha 值的颜色?不同的公式:我可以从具有 alpha 值的颜色 + 基础颜色计算出没有 alpha 值的颜色吗?
我希望有人能帮助我。
问候, 迈克尔
i've got a problem with transforming Colors in Java. The simplified problem look like the following:
My application contains an image. I've layed an Recangle over this image. The color of the Rectangle is defined as new Color(255, 255, 0, 80).
Is it possible to calculate / transform the Color which is shown on the Screen into a Color without Alpha-Value without the getPixelColor()-Method? Different formulated: Can I calculate a Color without alpha-value from a Color with alpha-value + the underlying color?
I hope someone can help me.
Regards,
Michael
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
正如维基百科文章所述(假设背景不透明):
免责声明:尚未对此进行测试但它应该有效。
如果前景色是恒定的(例如填充的透明矩形),您可以通过预先计算
fgColor.getComponent() * fgColor.getAlpha()
和(255 - fgColor.getAlpha ())
。Just as the Wikipedia article states (assuming opaque background):
Disclaimer: haven't tested this but it should work.
If the foreground color is constant (such as a filled transparent rectangle), you can optimize a lot by precomputing
fgColor.getComponent() * fgColor.getAlpha()
and(255 - fgColor.getAlpha())
.