如何在QPixmap上应用暗遮罩层?

时间:2012-12-29 17:07:19

标签: c++ qt pyqt pyside qpixmap

我对Qt相当新,并且一直在做很多阅读和练习练习。 我已经搜索了很多这个,但我找不到任何例子。

我有一个QPixmap对象,我加载了一个.png图像。 我需要创建一个带有暗掩码的QPixmap的副本。

基本上我希望这张QPixmap的图像覆盖一层纯黑,其不透明度设置为50%。

我知道如何设置QPixmap图像的不透明度但是如何在其上添加一层不透明的纯黑色?

谢谢!

1 个答案:

答案 0 :(得分:6)

您可以使用QPainter和半透明QBrush将暗层绘制到QPixmap上。

假设picQPixmap加载了您的图片:

QPainter p(&pic);
QBrush b(QColor(0,0,0,128)); // adjust color and alpha to taste
p.setBrush(b);
p.drawRect(0, 0, 200, 200);

效果(之前/之后):

  

enter image description here vs   enter image description here

在绘画前设置半透明笔可以去除不透明的黑色边框 如果要保留原始图像,请在应用“蒙版”之前复制像素图。