Skip to content

Instantly share code, notes, and snippets.

@wonder-sk
Created February 12, 2015 10:53
Show Gist options
  • Save wonder-sk/1d647c9e0d06d1b649d4 to your computer and use it in GitHub Desktop.
Save wonder-sk/1d647c9e0d06d1b649d4 to your computer and use it in GitHub Desktop.
Fix map renderer job DPI
diff --git a/src/core/qgsmaprendererjob.cpp b/src/core/qgsmaprendererjob.cpp
index 7b341d7..38f4f5d 100644
--- a/src/core/qgsmaprendererjob.cpp
+++ b/src/core/qgsmaprendererjob.cpp
@@ -242,6 +242,8 @@ LayerRenderJobs QgsMapRendererJob::prepareJobs( QPainter* painter, QgsPalLabelin
layerJobs.removeLast();
continue;
}
+ mypFlattenedImage->setDotsPerMeterX( mSettings.outputDpi() / 25.4 * 1000 );
+ mypFlattenedImage->setDotsPerMeterY( mSettings.outputDpi() / 25.4 * 1000 );
mypFlattenedImage->fill( 0 );
job.img = mypFlattenedImage;
@@ -305,6 +307,8 @@ void QgsMapRendererJob::cleanupJobs( LayerRenderJobs& jobs )
QImage QgsMapRendererJob::composeImage( const QgsMapSettings& settings, const LayerRenderJobs& jobs )
{
QImage image( settings.outputSize(), settings.outputImageFormat() );
+ image.setDotsPerMeterX( settings.outputDpi() / 25.4 * 1000 );
+ image.setDotsPerMeterY( settings.outputDpi() / 25.4 * 1000 );
image.fill( settings.backgroundColor().rgb() );
QPainter painter( &image );
diff --git a/src/core/qgsmaprenderersequentialjob.cpp b/src/core/qgsmaprenderersequentialjob.cpp
index d2792f5..8f43630 100644
--- a/src/core/qgsmaprenderersequentialjob.cpp
+++ b/src/core/qgsmaprenderersequentialjob.cpp
@@ -29,6 +29,8 @@ QgsMapRendererSequentialJob::QgsMapRendererSequentialJob( const QgsMapSettings&
QgsDebugMsg( "SEQUENTIAL construct" );
mImage = QImage( mSettings.outputSize(), mSettings.outputImageFormat() );
+ mImage.setDotsPerMeterX( settings.outputDpi() / 25.4 * 1000 );
+ mImage.setDotsPerMeterY( settings.outputDpi() / 25.4 * 1000 );
}
QgsMapRendererSequentialJob::~QgsMapRendererSequentialJob()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment