Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/156.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在QPixmap上应用黑色遮罩层?_C++_Qt_Pyqt_Pyside_Qpixmap - Fatal编程技术网

C++ 如何在QPixmap上应用黑色遮罩层?

C++ 如何在QPixmap上应用黑色遮罩层?,c++,qt,pyqt,pyside,qpixmap,C++,Qt,Pyqt,Pyside,Qpixmap,我对Qt相当陌生,一直在做大量的阅读和练习。 我已经找了很多,但是我找不到任何例子 我有一个QPixmap对象,我将.png图像加载到该对象。 我需要创建一个应用了黑色遮罩的QPixmap副本 基本上,我希望这个QPixmap的图像覆盖一层纯黑,不透明度设置为50% 我知道如何设置QPixmap图像的不透明度,但如何添加一层带有不透明度的纯黑 谢谢大家! 您可以使用QPainter和半透明QBrush在QPixmap上绘制暗层 假设pic是与图像一起加载的QPixmap: QPainter p(

我对Qt相当陌生,一直在做大量的阅读和练习。 我已经找了很多,但是我找不到任何例子

我有一个QPixmap对象,我将.png图像加载到该对象。 我需要创建一个应用了黑色遮罩的QPixmap副本

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

我知道如何设置QPixmap图像的不透明度,但如何添加一层带有不透明度的纯黑


谢谢大家!

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

假设
pic
是与图像一起加载的
QPixmap

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);
影响(之前/之后):

vs

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