Hi Martin, et al., Maybe I'm missing something elemental here, but I can't seem to find a simple way to apply my built-up QgsMapSettings to QgsMapCanvas or QgsMapRenderer, initiate a render from Python, then save into image on disk.
This is what I would like to do (for simple screen-res renders): cnv = iface.mapCanvas() ms = cnv.mapSettings() <-- or create fresh: ms = QgsMapSettings() (manipulate map settings) cnv.applyMapSettings(ms) <-- shouldn't this be possible? cnv.refresh() <-- since cnv.map().render() is stubbed now cnv.saveAsImage(my_imgpath) This is functioning (for creating unit test control images), but seems excessive: ms = my_map_settings pal = QgsPalLabeling() pal.init(ms) <-- is this necessary? r = QgsMapRenderer() r.setLabelingEngine(pal) # couldn't the next lines be covered by a r.applyMapSettings(ms) function? r.setOutputSize(ms.outputSize(), ms.outputDpi()) r.setMapUnits(ms.mapUnits()) r.setExtent(ms.extent()) r.setProjectionsEnabled(ms.hasCrsTransformEnabled()) r.setDestinationCrs(ms.destinationCrs()) r.setLayerSet(ms.layers()) image = QImage(ms.outputSize(), QImage.Format_ARGB32) image.fill(ms.backgroundColor().rgb()) image.setDotsPerMeterX(ms.outputDpi() / 25.4 * 1000) image.setDotsPerMeterY(ms.outputDpi() / 25.4 * 1000) p = QPainter(image) r.render(p) p.end() image.save(my_imgpath, 'png'): This is already convenient in QgsComposition, using QgsComposition( const QgsMapSettings& mapSettings ), then just render the page. Any ideas on the best approach here? Regards, Larry
_______________________________________________ Qgis-developer mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/qgis-developer
