Примитивное рисование в файл |
Здравствуйте, гость ( Вход | Регистрация )
Примитивное рисование в файл |
NordWest |
24.5.2009, 18:35
Сообщение
#1
|
Студент Группа: Участник Сообщений: 86 Регистрация: 26.11.2008 Пользователь №: 433 Спасибо сказали: 1 раз(а) Репутация: 0 |
Здравствуйте!
Требуется рисовать графики, для начала совсем примитивные, но опыта нет и в примерах в основном пишется про рисование в окнах. А нужно из консольного приложения в файл .jpg, .bmp... ну в любой графический. Из примеров и описания набрал кое чего, пробую так: CODE QImage *baseImg; QVector<QRgb> colormap; int maxIW = 1160; int maxIH = 1040; baseImg = new QImage(maxIW, maxIH, QImage::Format_Indexed8); for (k=0; k<256;k++) colormap << qRgb(k,k,k); baseImg->setColorTable(colormap); QPainter painter(baseImg); painter.setBrush(Qt::cyan); painter.setPen(Qt::darkCyan); painter.drawEllipse(10,20, 80,70); painter.end(); baseImg->save("drawing.bmp"); Получается черный прямоугольник размерами 1160х1040. Что я тут упустил для правильного черчения? О, изменил одну строчку: CODE baseImg = new QImage(maxIW, maxIH, QImage::Format_RGB444); Добавил ещё: CODE QBrush baseBrush(Qt::white, Qt::SolidPattern); painter.fillRect(0, 0, 100, 100, baseBrush); Получилось: Сообщение отредактировал NordWest - 24.5.2009, 18:37 |
|
|
NordWest |
24.5.2009, 18:51
Сообщение
#2
|
Студент Группа: Участник Сообщений: 86 Регистрация: 26.11.2008 Пользователь №: 433 Спасибо сказали: 1 раз(а) Репутация: 0 |
Вот такой код заработал и в принципе примитивов мне пока хватит для разрисовки простейших графиков:
CODE baseImg = new QImage(maxIW, maxIH, QImage::Format_RGB444); QBrush baseBrush(Qt::white, Qt::SolidPattern); QPainter painter(baseImg); painter.setBackground(baseBrush); painter.setBrush(Qt::cyan); painter.setPen(Qt::darkCyan); painter.drawEllipse(10,20, 80,70); painter.drawLine(10, 50, 300, 350); painter.end(); baseImg->save("drawing.bmp", "BMP"); Только вот фон не заливается. Ну да это мелочи, fillRect поможет. Цитата зачем это? Хз, из кода другой программы переносил, удалю. Цитата если я не ошибаюсь чтоб рисовать и создать устройства рисования нужно создать не консольное приложение. QPixmap и д.р. точно использует то что создает QApplication, а QCoreApplication не достаточно.. Да, извиняюсь, ошибка терминологии видимо. у меня QApplication вызывается. Просто нет основного окна как контекста для рисования. Цитата почему выбрал QImage? Что знал... Мне нужно в файл писать. QPicture стал ругаться, типа отсутствует окно... |
|
|
Текстовая версия | Сейчас: 15.1.2025, 22:50 |