Qt合成模式。黑色或白色(取决于背景)

时间:2019-09-18 06:56:26

标签: qt background composition foreground qpainter

我想在图像上绘制一个十字形,每个像素的颜色取决于背景颜色,因此十字形始终清晰可见。因此,我尝试更改QPainter的合成模式,但找不到可接受的解决方案。

我尝试过QPainter::CompositionMode_Difference,用白色绘画。这非常好,因为它可以反转目标颜色,但是如果目标颜色是中间灰色或类似的颜色,则效果不佳。

最好的解决方法是,如果背景为“暗”,则获取白色,如果背景为“浅”,则获取黑色。有没有办法仅使用画家的构图模式来获得这种效果?

2 个答案:

答案 0 :(得分:0)

如何自己运行DSbulk docs here,或者修改源/目标图像以更好地适应您的情况呢?也许QPainter :: CompositionMode_Xor是您想要的?

答案 1 :(得分:0)

另一种解决方案(甚至非常简单)是使用带有相当粗黑轮廓的白色十字。在这种情况下,即使在背景图像较暗或较亮的情况下,也可以确保十字架的可见性。