Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: [РЕШЕНО] Объединение изображений QPixMap
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Система рисования. Печать
JuryS1806
Всем доброго времени суток.
Прошу помочь разобраться с использованием QPainter'a. А именно я хочу понять, как можно объединить несколько изображений, пусть даже одинаковых.
QPixmap originalPixmap = QPixmap::grabWindow(winId());

QImage t(QSize(1790, 1146),QImage::Format_RGB32);
//t.fill(Qt::transparent);

QPainter tp(&t);

tp.drawPixmap(0, 0, 895, 573,originalPixmap);
tp.drawPixmap(895, 0, 895, 573,originalPixmap);
tp.drawPixmap(0, 573, 895, 573,originalPixmap);
tp.drawPixmap(895, 573, 895, 573,originalPixmap);
tp.end();
t.save(theFile, "bmp");

При сохранении изображения размером 1790*1146 получается снова 895*573. И что не так никак не пойму.
ufna
проверяй что-то еще, к примеру theFile

у меня данный код работает именно так, как должен.
JuryS1806
Спасибо за участие в обсуждении проблемы. Но нет ! почему-то создается Image размером с PixMap и все тут!
я если честно уже заводил такую тему раньше. пытаюсь сохранить окно GL-виджета в высоком разрешении и этот код мне просто необходим, а то как то вывод в мелком разрешении даже несерьезно...
Алексей1153
JuryS1806, в таких случаях от автора топика нужен небольшой прикреплённый проектик, в котором проблема точно есть. Иначе гадать можно долго :)
JuryS1806
блин у меня 108 мб исходников, а не 300 кб

ну а к примеру если я в QImage загружу картинку, неужели это сработает ! ?
Алексей1153
Цитата(JuryS1806 @ 22.6.2010, 0:10) *
блин у меня 108 мб исходников, а не 300 кб

создай новый проект и скопируй туда участочек кода с глюком. Будет в зипе от силы 1 кб :)
JuryS1806
Еще раз хочу сказать спасибо ufna !

Вот в чем была проблема:
    if ( !ext.compare("bmp") )
     {
        /*
        QPixmap originalPixmap = QPixmap::grabWindow(winId());
        //originalPixmap.save(theFile, "bmp");
QImage t1 = originalPixmap.toImage();
t1.save(theFile,"bmp");

QImage t2(theFile);

QImage t(QSize(1790, 1146),QImage::Format_RGB32);
//t.fill(Qt::transparent);

QPainter tp(&t);
tp.drawImage(895, 573,t2);
tp.drawImage(0, 0,t2);
tp.drawImage(0, 573,t2);
tp.drawImage(895, 0,t2);

t.save(theFile,"bmp");
*/
        QPixmap originalPixmap = QPixmap::grabWindow(winId());
        //originalPixmap.save("/tmp/1.bmp", "bmp");

//QImage t1("/tmp/1.bmp");
        QImage t1 = originalPixmap.toImage();
QImage t(QSize(1790, 1146),QImage::Format_RGB32);
//t.fill(Qt::transparent);

QPainter tp(&t);
tp.drawImage(895, 573,t1);
tp.drawImage(0, 0,t1);
tp.drawImage(0, 573,t1);
tp.drawImage(895, 0,t1);

t.save("/tmp/2.bmp","bmp");

     }

    if ( !ext.compare("bmp") )
     {
        QPixmap originalPixmap = QPixmap::grabWindow(winId());
        originalPixmap.save(theFile, "bmp");
     }


Т.е. я два раза делал сохранение в один и тот же формат и естественно второй раз переписывал удачное сохранение.
Сорри , топик можно закрыть !
Спасибо за помощь !
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.