crossplatform.ru

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

> Примитивное рисование в файл
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
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
kwisp
  опции профиля:
сообщение 24.5.2009, 18:41
Сообщение #2


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


Цитата(NordWest @ 24.5.2009, 19:17) *
for (k=0; k<256;k++) colormap << qRgb(k,k,k);
baseImg->setColorTable(colormap);

зачем это?

в дебуг ничего не вываливается случаем?

Цитата(NordWest @ 24.5.2009, 19:17) *
А нужно из консольного приложения в файл .jpg, .bmp... ну в любой графический.

если я не ошибаюсь чтоб рисовать и создать устройства рисования нужно создать не консольное приложение.
QPixmap и д.р. точно использует то что создает QApplication, а QCoreApplication не достаточно.. :(

Цитата
Warning: Qt requires that a QApplication object exists before any paint devices can be created. Paint devices access window system resources, and these resources are not initialized before an application object is created.


почему выбрал QImage?

Сообщение отредактировал kwisp - 24.5.2009, 18:41
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- NordWest   Примитивное рисование в файл   24.5.2009, 18:35
- - kwisp   Цитата(NordWest @ 24.5.2009, 19:17) for (...   24.5.2009, 18:41
- - NordWest   Вот такой код заработал и в принципе примитивов мн...   24.5.2009, 18:51
- - kwisp   NordWest, можно готовое решение рисования слямзит...   24.5.2009, 19:00
- - NordWest   Цитатаможно готовое решение рисования слямзить из ...   24.5.2009, 22:00
- - NordWest   Вот и с надписями получилось: CODE ...   24.5.2009, 22:38
- - kwisp   NordWest, мда. красиво. а что это?   24.5.2009, 22:38
|- - NordWest   Цитата(kwisp @ 24.5.2009, 23:38) NordWest...   24.5.2009, 22:40
- - NordWest   А как бы вот ещё текст рисовать вертикально? Снизу...   28.5.2009, 12:14
- - igor_bogomolov   Смотри внимательно описание QPainter. А именно Цит...   28.5.2009, 12:23
- - SABROG   Кстати интересно, а как сместить центр этого rotat...   28.5.2009, 13:00
- - NordWest   Я вот как то пока не врублюсь. Это как поворот осу...   28.5.2009, 13:09
- - igor_bogomolov   Цитата(SABROG @ 28.5.2009, 14:00) Кстати ...   28.5.2009, 13:14
- - Litkevich Yuriy   Цитата(SABROG @ 28.5.2009, 17:00) а как с...   28.5.2009, 13:55
- - SABROG   Цитата(Litkevich Yuriy @ 28.5.2009, 14:55...   28.5.2009, 15:08


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


6 чел. читают эту тему (гостей: 6, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 15.1.2025, 23:03