之前项目上的需要,中间用到了把QImage变成半透明的效果,
当时查了一些资料,为了防止遗忘,就在博客中记录了下来。
下面是代码:
//将QImage转化为半透明的效果
QPixmap ChangeQImageBackTransparency(QString path)
{
QImage *img = new QImage;
img->load(path);
QPixmap pix = QPixmap::fromImage(*img);
QPixmap tmpPix(pix.size());
tmpPix.fill(Qt::transparent);
QPainter p1(&tmpPix);
p1.setCompositionMode(QPainter::CompositionMode_Source);
p1.drawPixmap(0, 0, pix);
p1.setCompositionMode(QPainter::CompositionMode_DestinationIn);
//200表示透明度,数值0表示完全透明,数值255表示不透明
p1.fillRect(tmpPix.rect(), QColor(0, 0, 0, 200));
p1.end();
delete img;
return tmpPix;
}