美文网首页
获取半透明度的图像

获取半透明度的图像

作者: 雯饰太一 | 来源:发表于2023-07-24 22:21 被阅读0次
    void GetHalfOpicityPixmap(QPixmap& dest, QPixmap& source)
    {
        dest = QPixmap(source.width(), source.height());
        dest.fill(Qt::transparent);
        QPainter painter;
        painter.begin(&dest);
        painter.setOpacity(0.5);
        painter.drawPixmap(QRect(0, 0, source.width(), source.height()), source);
        painter.end();
    }
    

    备注:可以添加透明度参数,获取不同透明度的图像;这里主要用于标识当前对象数据为空。

    其中使用dest.fill(Qt::transparent)非常重要,这句话首先将pixmap填充成了透明,然后才进行的绘制,而且这个过程是可以在线程中进行的,在线程工作对象将图像绘制出来之后,可以直接将结果返回给主线程使用。

    如果大图变成了小图有的时候会有一些锯齿,可以使用如下代码来是的图像平滑,并且抗锯齿:

    painter.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform);
    

    相关文章

      网友评论

          本文标题:获取半透明度的图像

          本文链接:https://www.haomeiwen.com/subject/fyfiydtx.html