我想在我的视频编辑器应用程序中显示trimed剪辑和非trimed剪辑之间的区别,即我想在我的缩略图上添加一个小的电影图像作为一个trimed剪辑。我怎么能这样做?
只是在我们的图库应用程序中显示图像和视频之间的区别。
如何在Qt中添加另一个图像的顶部?
答案 0 :(得分:23)
打开底部图像的QPainter,使用drawPixmap()/ drawImage()方法绘制顶部图像。
QPixmap base, overlay; // come from your code
{
QPainter painter(base);
painter.drawPixmap(100, 100, overlay);
}
如果您的叠加层包含Alpha通道(例如奇特的PNG图标)而您的基本图像没有,则应创建一个带有Alpha通道的新QPixmap并将两个图像绘制到其中:
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可以互换使用,但并非所有组合都能提供良好的性能。
答案 1 :(得分:0)
如果只是将图片显示在另一张图片上方,那么您也可以使用this answer。
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
不包含overlay-image 的QPixbuf
,但它似乎只有。{/ p>