我的对象已经确定了边框颜色。
现在我希望用户能够设置至少填充图案的不透明度。例如,边界是蓝色的。用户将不透明度设置为128,因此填充图案也以蓝色绘制,但是半透明。
下一步是允许用户稍微调整图案的颜色。例如:“使用边框颜色,但使其半透明(alpha = 128)和一点点黄色。”。
是否有一种(有用的)方法来组合两种颜色,其中一种颜色没有设置?或者更有意义的是在原始颜色上设置一个alpha值并将其与一个也设有alpha值的“叠加颜色”相结合?
是否有一个函数(或者其他人可以提供一个简短的代码片段)来组合两个QColor对象?
答案 0 :(得分:2)
我会看看现有的颜色选择器(Gimp,Photoshop,Paint,wwWidgets)。他们中的大多数都采用了几种不同的颜色选择方式:
饱和度,色相,数值,亮度,对比度,RGB,CMYK,HSV,Alpha /不透明度。
Qt开箱即用处理这些问题:
为了组合两种颜色,我可能会将它们的不同组件平均在一起:
// Rough pseudocode
Color1 RGBA, Color 2 RGBA, Color 3 = combination
Color3.R = (Color1.R + Color2.R)/2
Color3.G = (Color1.G + Color2.G)/2
Color3.B = (Color1.B + Color2.B)/2
Color3.A = (Color1.A + Color2.A)/2
我希望有所帮助。
PS:了解Color Space也很有帮助。