直接上源码,下面是三张png图片依次从上往下拼接起来的,如果想要叠加效果的(因为png图片支持透明),则改变drawImage拷贝图片起始位置即可:
QImage createImageWithOverlay(const QImage& baseImage,
const QImage& overlayImage1,
const QImage& overlayImage2)
{
QImage imageWithOverlay = QImage(baseImage.size().width(),
baseImage.size().height()*3, //输出的图片按照第一张图片的3倍高
QImage::Format_ARGB32_Premultiplied);
QPainter painter(&imageWithOverlay);
painter.setCompositionMode(QPainter::CompositionMode_Source);
painter.fillRect(imageWithOverlay.rect(), Qt::transparent);
painter.setCompositionMode(QPainter::CompositionMode_SourceOver);
painter.drawImage(0, 0, baseImage);
painter.setCompositionMode(QPainter::CompositionMode_SourceOver);
painter.drawImage(0,
baseImage.size().height()*1, //如果叠加,起始坐标全部改为0,0

本文介绍了一种使用Qt进行图像处理的方法,具体实现了三张PNG图像的垂直拼接,并支持透明度叠加效果。通过调整参数可以轻松实现不同图像间的叠加。
863

被折叠的 条评论
为什么被折叠?



