crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в [РЕШЕНО] Объединение изображений QPixMap
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
JuryS1806 Дата 21.6.2010, 22:27
  Еще раз хочу сказать спасибо 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");
     }


Т.е. я два раза делал сохранение в один и тот же формат и естественно второй раз переписывал удачное сохранение.
Сорри , топик можно закрыть !
Спасибо за помощь !
Алексей1153 Дата 21.6.2010, 21:14
 
Цитата(JuryS1806 @ 22.6.2010, 0:10) *
блин у меня 108 мб исходников, а не 300 кб

создай новый проект и скопируй туда участочек кода с глюком. Будет в зипе от силы 1 кб :)
JuryS1806 Дата 21.6.2010, 21:10
  блин у меня 108 мб исходников, а не 300 кб

ну а к примеру если я в QImage загружу картинку, неужели это сработает ! ?
Алексей1153 Дата 21.6.2010, 20:59
  JuryS1806, в таких случаях от автора топика нужен небольшой прикреплённый проектик, в котором проблема точно есть. Иначе гадать можно долго :)
JuryS1806 Дата 21.6.2010, 20:32
  Спасибо за участие в обсуждении проблемы. Но нет ! почему-то создается Image размером с PixMap и все тут!
я если честно уже заводил такую тему раньше. пытаюсь сохранить окно GL-виджета в высоком разрешении и этот код мне просто необходим, а то как то вывод в мелком разрешении даже несерьезно...
ufna Дата 21.6.2010, 8:49
  проверяй что-то еще, к примеру theFile

у меня данный код работает именно так, как должен.
JuryS1806 Дата 21.6.2010, 1:15
  Всем доброго времени суток.
Прошу помочь разобраться с использованием 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. И что не так никак не пойму.
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 29.3.2024, 1:13