首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将一个图像添加到另一个图像的顶部?

如何将一个图像添加到另一个图像的顶部?
EN

Stack Overflow用户
提问于 2010-12-07 18:08:13
回答 2查看 20K关注 0票数 14

我想在我的视频编辑器应用程序中显示裁切剪辑和非裁切剪辑之间的区别,即我想在缩略图上为裁切剪辑添加一个小胶片图像。我该怎么做呢?

这将只是在我们的图库应用程序中显示图像和视频之间的区别。

如何在Qt中将一个图像添加到另一个图像的顶部?

EN

回答 2

Stack Overflow用户

发布于 2010-12-08 01:27:19

打开底部图像上的QPainter,并使用其drawPixmap()/drawImage()方法绘制顶部图像。

代码语言:javascript
复制
QPixmap base, overlay; // come from your code
{
    QPainter painter(base);
    painter.drawPixmap(100, 100, overlay);
}

如果覆盖图包含alpha通道(例如,花哨的PNG图标),而基础图像不包含,则应创建一个具有alpha通道的新QPixmap,并将两个图像都绘制到其中:

代码语言:javascript
复制
QPixmap base, overlay; // come from your code
QPixmap result(base.width(), base.height());
result.fill(Qt::transparent); // force alpha channel
{
    QPainter painter(&result);
    painter.drawPixmap(0, 0, base);
    painter.drawPixmap(100, 100, overlay);
}

QPixmaps和QImages可以互换使用,尽管并非所有组合都能提供良好的性能)。

票数 28
EN

Stack Overflow用户

发布于 2018-03-12 14:50:13

如果只是想在一张图片上显示另一张图片,那么你也可以使用this answer

代码语言:javascript
复制
QGridLayout *layout = new QGridLayout(widget);
Pixmap base, overlay;
QLabel *background = new Label();
background->setPixmap(&base);
QLabel *lOverlay = new QLabel();
lOverlay->setPixmap(&overlay);

//label gets positioned above textBrowser and is an overlay
layout->addWidget(background, 0, 0, Qt::AlignLeft | Qt::AlignTop);
layout->addWidget(lOverlay, 0, 0, Qt::AlignRight | Qt::AlignBottom); 

当然,背景图像的QPixbuf不包含覆盖图像的,但它只是看起来是这样的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4375433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档