From c6fa41588067b3c9787ded63207014ee5ae4d2d8 Mon Sep 17 00:00:00 2001 From: "Robert C. Helling" Date: Fri, 7 Aug 2020 11:43:49 +0200 Subject: Improve resolution of profile export The way we export the profile image (as direct export but also used for printing) is that we render the profile from the screen to a Pixmap and save that to a file. Unfortunately this results in very bad resultion and a blurred image. This is an attempt to improve that situation but it's still far from perfect: Rather than a QPixmap and grab, I now use a QImage (where I can set the size) and render, and indeed the picture resolution (when vied at fixed size) get's better this way. The disadvantage is that icons get smaller at the same rate und so there is a natural limit on how big we can get. Maybe somebody with better Qt knowledge can take off from here. In my opinion this is already a step in the right direction. Signed-off-by: Robert C. Helling Signed-off-by: Dirk Hohndel --- desktop-widgets/divelogexportdialog.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'desktop-widgets/divelogexportdialog.cpp') diff --git a/desktop-widgets/divelogexportdialog.cpp b/desktop-widgets/divelogexportdialog.cpp index dec79113a..3204842ee 100644 --- a/desktop-widgets/divelogexportdialog.cpp +++ b/desktop-widgets/divelogexportdialog.cpp @@ -227,7 +227,15 @@ void exportProfile(const struct dive *dive, const QString filename) ProfileWidget2 *profile = MainWindow::instance()->graphics; profile->plotDive(dive, true, false, true); profile->setToolTipVisibile(false); - QPixmap pix = profile->grab(); + profile->setPrintMode(true); + double scale = profile->getFontPrintScale(); + profile->setFontPrintScale(4 * scale); + QImage image = QImage(profile->size() * 4, QImage::Format_RGB32); + QPainter paint; + paint.begin(&image); + profile->render(&paint); + image.save(filename); profile->setToolTipVisibile(true); - pix.save(filename); + profile->setFontPrintScale(scale); + profile->setPrintMode(false); } -- cgit v1.2.3-70-g09d2