Как добавить изображение поверх другого изображения?

Я хочу показать разницу между обрезанным клипом и не обрезанным клипом в приложении для видеоредактора, т.е. я хочу добавить небольшое изображение на миниатюре для обрезанного клипа. Как я могу это сделать?

Было бы просто показать разницу между изображением и видео в нашем приложении галереи.

Как добавить изображение поверх другого в Qt?

Ответ 1

Откройте QPainter на нижнем изображении и нарисуйте верхнее изображение, используя методы drawPixmap()/drawImage().

QPixmap base, overlay; // come from your code
{
    QPainter painter(base);
    painter.drawPixmap(100, 100, overlay);
}

Если ваш оверлей содержит альфа-канал (например, фантазийный значок PNG), а базовое изображение - нет, вы должны создать новый 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 могут использоваться взаимозаменяемо, хотя не все комбинации дают хорошую производительность).