Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как объеденить 2 картинки в одну?
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Система рисования. Печать
Rocky
Всем привет!

Если нужно из 2-х картинок сделать одну, то как лучше всего это делать? Я делаю так.. но меня смущает правильность этого.. Может есть другой способ?

void CPlayingForm::AddImage(QImage& oImageInitial, const QImage& oImageToAdd, const int& nVertOffset) const
{
    //к oImage добавляем oImageToAdd с вертикальным смещением nOffset
    const int nImageW = oImageToAdd.width();
    const int nImageH = oImageToAdd.height();
    
    if (oImageInitial.width() != nImageW)
    {
        //error
        return;
    }

    if (nImageH + nVertOffset > oImageInitial.height())
    {
        //error
        return;
    }

    for (int i = 0; i < nImageW; ++i)
    {
        for (int j = 0; j < nImageH; ++j)
        {
            oImageInitial.setPixel(i, nVertOffset + j, oImageToAdd.pixel(i, j));
        }
    }
}

.......
QImage oImage(nImageW, 2 * nImageH, QImage::Format_RGB32);
AddImage(oImage, oImage1, 0 * nImageH);


Т.е. тупо через setPixel с вертикальным смещением... Работает вроде как шустро... но можно ли быстрее?

Спасибо!
BRE
Думаю быстрее будет, если использовать QPainter::drawImage.
Создаешь QImage нужного размера, инициализируешь его в QPainter и рисуешь исходные изображения с необходимым смещением.
А то setPixel постоянно смещение по координатам вычисляет.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.