Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: Fregloin от Февраль 06, 2014, 10:58



Название: Сохранение изображения сцены в файл - разные изображения
Отправлено: Fregloin от Февраль 06, 2014, 10:58
Привет. Столкнулся с задачей сохранить изображение сцены в файл. Все работает, код приведу ниже, но вот беда, шрифты и сглаживание отличается от того, что на экране. Полагаю это из за того, что рендеринг на экране идет через OpenGL, а в файл идет прграммно.

Код:
        scene()->clearSelection();
        QImage  image(scene()->sceneRect().size().toSize(),QImage::Format_ARGB32);
        image.fill(scene()->backgroundColor());

        QPainter    painter(&image);
        painter.setRenderHint(QPainter::Antialiasing,true);
        painter.setRenderHint(QPainter::TextAntialiasing,true);
        scene()->render(&painter);
        image.save(fileName);

прилагаю скриншоты:
сверху изображение в программе, снизу результат сохранения в файл (специально сохранял в bmp что бы исключить сглаживание и сжатие jpg|png).

Как видно, текст не сглаживается вообще, хотя флаги заданы.


Название: Re: Сохранение изображения сцены в файл - разные изображения
Отправлено: Igors от Февраль 06, 2014, 11:15
Полагаю это из за того, что рендеринг на экране идет через OpenGL, а в файл идет прграммно.
Точнее через "растровую машину рисования" (имедж). Это легко проверить отрендерив сначала в QImage и выведя его на экран. Варианты

- если OpenGL то можно прочитать отрендеренное используя glReadPixels. Хотя у меня и получилось это сделать, недавно от этого кода я избавился

- подобрать шрифты которые гладятся/гадятся одинаково


Название: Re: Сохранение изображения сцены в файл - разные изображения
Отправлено: Fregloin от Февраль 06, 2014, 13:42
Вот только что собрал программу под убунтой и сделал скриншот - все как на экране, т.е. сглаживание и остальное.
А под виндой не работает. Конечно не критично, но странно что так получается.


Название: Re: Сохранение изображения сцены в файл - разные изображения
Отправлено: GreatSnake от Февраль 06, 2014, 15:01
Как видно, текст не сглаживается вообще, хотя флаги заданы.
Странно, а почему я тогда вижу АА?
Другое дело, что он другой, но он есть!

PS. упс, не так посмотрел - действительно нет


Название: Re: Сохранение изображения сцены в файл - разные изображения
Отправлено: GreatSnake от Февраль 06, 2014, 15:08
Попробуй при установке фонта задать QFont::setStyleStrategy( QFont::PreferAntialias ).


Название: Re: Сохранение изображения сцены в файл - разные изображения
Отправлено: Fregloin от Февраль 07, 2014, 18:50
а где это задавать? для каждого элемента на сцене или для всей сцены целиком?