【QT】使用QPainter类drawImage函数绘制透明图片的问题 您所在的位置:网站首页 qt透明画刷 【QT】使用QPainter类drawImage函数绘制透明图片的问题

【QT】使用QPainter类drawImage函数绘制透明图片的问题

2024-07-17 00:00| 来源: 网络整理| 查看: 265

今天这个问题纠结了我好久,后来终于找到了解决方法。

QT显示图片一般使用QLabel对象,然后setPixmap将图片显示出来,之前要做这么一个工作,直接上代码。

QImage sourceImage(strImageFile);//sourcefile为文件名,文件格式为PNG QImage *subImg = new QImage(width,height,QImage::Format_ARGB32); QPainter p(subImg); p.setCompositionMode(QPainter::CompositionMode_Source);//注意这一行代码 p.drawImage(0,0,sourceImage,x,y,width,height); m_pLabel = new QLabel; m_pLabel->setMinimumWidth(600); m_pLabel->setPixmap(QPixmap::fromImage(*subImg)); 上面标注要注意的这行代码起初一直没有加上,因此导致画出来的图片,明明应该是透明的,总是会出现莫名其妙的花点,后来加上这行代码之后就好了。

QT文档上如此解释这个属性,说白了就是复制,当原图片不是透明时,与SourceOver属性效果相同

The output is the source pixel. (This means a basic copy operation and is identical to SourceOver when the source pixel is opaque).



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有