2

我有已经确定边框颜色的对象。

现在我希望用户至少能够设置填充图案的不透明度。例如,边框是蓝色的。用户将不透明度设置为 128,因此填充图案也以蓝色绘制,但半透明。

下一步是允许用户稍微调整图案的颜色。例如:“使用边框颜色,但使其半透明(alpha=128)和一点点黄色。”。

有没有一种(有用的)方法可以组合两种颜色,其中一种颜色没有设置 alpha 值?或者在原始颜色上设置一个 alpha 值并将其与也设置了 alpha 值的“叠加颜色”结合起来是否更有意义?

是否有一个函数(或者其他人可以给出一个简短的代码片段)来组合两个 QColor 对象?

4

1 回答 1

2

我会查看现有的颜色选择器(Gimp、Photoshop、Paint、wwWidgets)。他们中的大多数处理几种不同的颜色选择方法:

饱和度、色调、值、亮度、对比度、RGB、CMYK、HSV、Alpha/不透明度。

Qt 开箱即用地处理了这些:

QColor

为了组合两种颜色,我可能会将它们的不同成分平均在一起:

// 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:了解色彩空间也很有帮助。

于 2012-09-25T22:30:14.780 回答