crossplatform.ru

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


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

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

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


Последние 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 Рейтинг@Mail.ru Текстовая версия Сейчас: 28.7.2025, 17:10