猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
将RGBA颜色转换为RGB
如何将RGBA颜色元组(例如96、96、96、202)转换为相应的RGB颜色元组?
编辑:
我想要得到的RGB值在视觉上在白色背景上与RGBA元组最相似。
慕无忌1623718
浏览 1876
回答 3
3回答
米琪卡哇伊
我赞成约翰尼斯的回答,因为他对此是正确的。*有人提出我的原始答案不正确的评论。如果alpha值与正常值相反,则可以正常工作。但是,根据定义,这在大多数情况下不起作用。因此,我更新了以下公式以适合正常情况。最终等于@hkurabko在下面的回答*但是,一个更具体的答案是将alpha值基于不透明的背景色(或称为“遮罩”)合并到实际的颜色结果中。为此有一个算法(来自此 Wikipedia链接):标准化RGBA值,使它们都在0到1之间-只需将每个值除以255即可。我们称之为结果Source。还可以对遮罩色进行归一化(黑色,白色等)。我们将结果称为“ BGColor 注” -如果背景颜色也是透明的,则必须首先递归该过程(再次选择遮罩),以获取此操作的源RGB。现在,将转换定义为(在此处完整的伪代码!):Source => Target = (BGColor + Source) =Target.R = ((1 - Source.A) * BGColor.R) + (Source.A * Source.R)Target.G = ((1 - Source.A) * BGColor.G) + (Source.A * Source.G)Target.B = ((1 - Source.A) * BGColor.B) + (Source.A * Source.B)要获得最终的0-255值,Target只需将所有归一化的值乘以255,并确保在任何组合值超过1.0时将上限设置为255(这是过度曝光,并且有更复杂的算法来处理此问题涉及整个图像处理等)。编辑:在您的问题中,您说过您想要一个白色背景-在那种情况下,只需将BGColor固定为255,255,255即可。
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
源码
spark分组排序提取前N个值
1 回答
请问转让门店小程序需要源码吗?门店小程序有自己的源代码吗?是否要注册计算机软件著作权才可以交易?
1 回答
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续