Название: [Qt 4.1.1] Вывод большого числа объектов QPaint Отправлено: tv85 от Октябрь 11, 2007, 14:40 Столкнулся с такой проблемой...
Считываю из файла множество объектов представляющих собой координаты реальных полилиний и полигонов. Соответственно храню их перед выводом на экран в объектах такого класса: Код: class MapObject Код: painter.drawPolyline(massiveObj[i]->vecPoint); Поэтому возникли два вопроса: 1. Можно ли как-нибудь предварительно создать изображение в буфере и выводить его целиком? 2. Можно ли потом все сохранить в bmp файл? Надеюсь на вашу помощь. Заранее благодарен :) Название: Re: [Qt 4.1.1] Вывод большого числа объектов QPaint Отправлено: EhTemka от Октябрь 11, 2007, 19:55 1. можно 2. можно 1. вообще это не сложно просто создаешь QPixmap, передаешь его QPainter -у и рисуешь, что тебе надо один раз или когда надо, а затем просто отрисовываешь этот QPixmap. 2. этот же QPixmap можно сохранить. Функция save(...) Сегодня некогда, завтра напишу подробнее если надо Название: Re: [Qt 4.1.1] Вывод большого числа объектов QPaint Отправлено: tv85 от Октябрь 11, 2007, 21:08 Спасибо. Очень буду благодарен, если поможете. Просто для меня это еще не очень изученная область. С нетерпением жду :)
Название: Re: [Qt 4.1.1] Вывод большого числа объектов QPaint Отправлено: Oleg0412 от Октябрь 12, 2007, 12:55 У меня сейчас похожая проблема, но изображения разнообразнее.
QPainterPath не побыстрее ли будет работать, чем QPixmap? А какие еще манипуляции надо проводить? Название: Re: [Qt 4.1.1] Вывод большого числа объектов QPaint Отправлено: tv85 от Октябрь 12, 2007, 14:42 Да я тоже думал об использовании QPainterPath, но объект этого класса, насколько я понял, не принимает полилиний (хотя полигоны добавлять можно). Да и потом как мне все это сохранить в bmp (а это очень нужно!!!)?
А манипуляции..., в основном аффинные преобразования + выделение различных частей изображения. Название: Re: [Qt 4.1.1] Вывод большого числа объектов QPaint Отправлено: EhTemka от Октябрь 12, 2007, 20:32 QPixmap pix_(w,h);
QPainter painter(pix_); painter.begin(); ... тут ресуем что надо ... painter.end(); paintEvent ( QPaintEvent * event ) { QPainter painter; painter.begin(); paint.drawPixmap(pix_) // ресуем нашу картинку painter.end(); } pix_.save("C:\temp.bmp", "BMP"); как-нибудь так можно Название: Re: [Qt 4.1.1] Вывод большого числа объектов QPaint Отправлено: tv85 от Октябрь 13, 2007, 17:16 Спасибо. Во многом прояснило ситуацию и самое главное помогло :D!
Но если можно еще один вопрос... Можно ли преобразовать сохраненный bmp файл в градиент серого? Название: Re: [Qt 4.1.1] Вывод большого числа объектов QPaint Отправлено: EhTemka от Октябрь 13, 2007, 18:12 Ну на вскидку можно.
Только вместо QPixmap лучше наверно использовать QImage. Рисовать также как QPixmap, только у него еще есть функция QVector<QRgb> colorTable () const, A QRgb, позволяет получить int qGray( QRgb rgb ), смотри assistant. Проходишь в цикле QVector<QRgb> colors, заменяешь значения QRgb на полученные серошкальные, а затем QImage.setColorTable( const QVector<QRgb> colors) выглядит примерно так: QVector<QRgb> colors = image.colorTable(); for (int i = 0; i < colors.size(); ++i) { QRgb rgb = colors.at(i); int gray = qGray(qRed(rgb), qGreen(rgb), qBlue(rgb)); QRgb rgbGray = qRgb(gray, gray, gray); colors.replace(i,rgbGray); } image.setColorTable(colors); Может можно как-то еще, не разбирался, так как сам это делал когда-то без Qt Название: Re: [Qt 4.1.1] Вывод большого числа объектов QPaint Отправлено: tv85 от Октябрь 13, 2007, 18:19 Спасибо...Сегодня же попробую :)
|