【问题标题】:How can I apply a dark mask layer on a QPixmap?如何在 QPixmap 上应用深色遮罩层?
【发布时间】:2012-12-14 13:44:00
【问题描述】:

我对 Qt 还很陌生,并且已经做了很多阅读和练习练习。 我已经搜索了很多,但找不到任何示例。

我有一个加载 .png 图像的 QPixmap 对象。 我需要创建此 QPixmap 的副本,并对其应用深色蒙版。

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

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

谢谢!

【问题讨论】:

    标签: c++ qt pyqt pyside qpixmap


    【解决方案1】:

    您可以使用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

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

    【讨论】:

      猜你喜欢
      • 2011-12-30
      • 2016-12-27
      • 2012-01-07
      • 1970-01-01
      • 2017-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-27
      相关资源
      最近更新 更多