Qt图像处理技术八:将一张图片覆盖到另一张图片上(图片重叠)
代码(覆盖图片尺寸改为和原始图片相同)
//lastImg是被覆盖对象 ,imgFull是覆盖对象
QImage OverlayImage(const QImage &lastImg ,const QImage &imgFull)
{
QImage img(lastImg);
if (!img.isNull()) {
//获得和原始图片同等大小的图片,方便完全覆盖
QImage tmpImg= imgFull.scaled(QSize(img.width(), img.height()));
//必须用到画笔的drawImage
QPainter painter;
painter.begin(&img);
painter.drawImage(0, 0, tmpImg);
painter.end();
}
return img;
}
效果
覆盖图为一个很小的svg
代码 (覆盖尺寸为300*300)
QImage OverlayImage(const QImage &lastImg ,const QImage &imgFull)
{
QImage img(lastImg);
if (!img.isNull()) {
//获得和原始图片同等大小的图片,方便完全覆盖
QImage tmpImg= imgFull.scaled(QSize(300, 300);
//必须用到画笔的drawImage
QPainter painter;
painter.begin(&img);
painter.drawImage(0, 0, tmpImg);
painter.end();
}
return img;
}
效果
更改 painter.drawImage(200, 200, tmpImg);