Using pyqgis, i am trying to export some maps as images using QgsMapRenderer. Here is the layer/style setup, both load correctly:
lyr = QgsVectorLayer(uri.uri(), 'Report', 'postgres')styleload = lyr.loadNamedStyle(stylepath)if not styleload[1]: print 'Error loading report selected style'if not lyr.isValid(): raise IOError, "Failed to open the reports layer"else: QgsMapLayerRegistry.instance().addMapLayer(lyr_reports) map_layers.append(QgsMapCanvasLayer(lyr))Here is how i export, using QgsMapRenderer...
renderer = QgsMapRenderer()renderer.setDestinationCrs(QgsCoordinateReferenceSystem(crs))renderer.setLabelingEngine(QgsPalLabeling()) renderer.setLayerSet(QgsMapLayerRegistry.instance().mapLayers().keys())p = QPainter() extents = lyr.extent()extents.scale(1.1)renderer.setExtent(extents)img = QImage(QSize(2050, 1150), QImage.Format_ARGB32_Premultiplied)img.fill(QColor(255, 255, 255).rgb())p.begin(img)p.setRenderHint(QPainter.Antialiasing)renderer.setOutputSize(img.size(), img.logicalDpiX())renderer.render(p)img.save(mappath, 'jpg')p.end()The problem is, i get the image out, but styles are not being applied at all, even though they load correctly.
أكثر...
lyr = QgsVectorLayer(uri.uri(), 'Report', 'postgres')styleload = lyr.loadNamedStyle(stylepath)if not styleload[1]: print 'Error loading report selected style'if not lyr.isValid(): raise IOError, "Failed to open the reports layer"else: QgsMapLayerRegistry.instance().addMapLayer(lyr_reports) map_layers.append(QgsMapCanvasLayer(lyr))Here is how i export, using QgsMapRenderer...
renderer = QgsMapRenderer()renderer.setDestinationCrs(QgsCoordinateReferenceSystem(crs))renderer.setLabelingEngine(QgsPalLabeling()) renderer.setLayerSet(QgsMapLayerRegistry.instance().mapLayers().keys())p = QPainter() extents = lyr.extent()extents.scale(1.1)renderer.setExtent(extents)img = QImage(QSize(2050, 1150), QImage.Format_ARGB32_Premultiplied)img.fill(QColor(255, 255, 255).rgb())p.begin(img)p.setRenderHint(QPainter.Antialiasing)renderer.setOutputSize(img.size(), img.logicalDpiX())renderer.render(p)img.save(mappath, 'jpg')p.end()The problem is, i get the image out, but styles are not being applied at all, even though they load correctly.
أكثر...