本文整理汇总了Python中qgis.PyQt.QtGui.QPainter.begin方法的典型用法代码示例。如果您正苦于以下问题:Python QPainter.begin方法的具体用法?Python QPainter.begin怎么用?Python QPainter.begin使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类qgis.PyQt.QtGui.QPainter
的用法示例。
在下文中一共展示了QPainter.begin方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: runTestForLayer
# 需要导入模块: from qgis.PyQt.QtGui import QPainter [as 别名]
# 或者: from qgis.PyQt.QtGui.QPainter import begin [as 别名]
def runTestForLayer(self, layer, testname):
tempdir = tempfile.mkdtemp()
layer = QgsVectorLayer(layer, 'Layer', 'ogr')
QgsProject.instance().addMapLayer(layer)
self.iface.mapCanvas().setExtent(layer.extent())
geom = next(layer.getFeatures()).geometry()
highlight = QgsHighlight(self.iface.mapCanvas(), geom, layer)
color = QColor(Qt.red)
highlight.setColor(color)
highlight.setWidth(2)
color.setAlpha(50)
highlight.setFillColor(color)
highlight.show()
image = QImage(QSize(400, 400), QImage.Format_ARGB32)
image.fill(Qt.white)
painter = QPainter()
painter.begin(image)
self.iface.mapCanvas().render(painter)
painter.end()
control_image = os.path.join(tempdir, 'highlight_{}.png'.format(testname))
image.save(control_image)
checker = QgsRenderChecker()
checker.setControlPathPrefix("highlight")
checker.setControlName("expected_highlight_{}".format(testname))
checker.setRenderedImage(control_image)
self.assertTrue(checker.compareImages("highlight_{}".format(testname)))
shutil.rmtree(tempdir)
示例2: renderGeometry
# 需要导入模块: from qgis.PyQt.QtGui import QPainter [as 别名]
# 或者: from qgis.PyQt.QtGui.QPainter import begin [as 别名]
def renderGeometry(self, symbol, geom, buffer=20):
f = QgsFeature()
f.setGeometry(geom)
image = QImage(200, 200, QImage.Format_RGB32)
painter = QPainter()
ms = QgsMapSettings()
extent = geom.get().boundingBox()
# buffer extent by 10%
if extent.width() > 0:
extent = extent.buffered((extent.height() + extent.width()) / buffer)
else:
extent = extent.buffered(buffer / 2)
ms.setExtent(extent)
ms.setOutputSize(image.size())
context = QgsRenderContext.fromMapSettings(ms)
context.setPainter(painter)
context.setScaleFactor(96 / 25.4) # 96 DPI
context.expressionContext().setFeature(f)
painter.begin(image)
try:
image.fill(QColor(0, 0, 0))
symbol.startRender(context)
symbol.renderFeature(f, context)
symbol.stopRender(context)
finally:
painter.end()
return image
示例3: exportAsImage
# 需要导入模块: from qgis.PyQt.QtGui import QPainter [as 别名]
# 或者: from qgis.PyQt.QtGui.QPainter import begin [as 别名]
def exportAsImage(self):
filename = unicode(QFileDialog.getSaveFileName(self,
self.tr('Save Model As Image'), '',
self.tr('PNG files (*.png *.PNG)')))
if not filename:
return
if not filename.lower().endswith('.png'):
filename += '.png'
totalRect = QRectF(0, 0, 1, 1)
for item in self.scene.items():
totalRect = totalRect.united(item.sceneBoundingRect())
totalRect.adjust(-10, -10, 10, 10)
img = QImage(totalRect.width(), totalRect.height(),
QImage.Format_ARGB32_Premultiplied)
img.fill(Qt.white)
painter = QPainter()
painter.setRenderHint(QPainter.Antialiasing)
painter.begin(img)
self.scene.render(painter, totalRect, totalRect)
painter.end()
img.save(filename)
示例4: testRenderMarkerLayerDisabled
# 需要导入模块: from qgis.PyQt.QtGui import QPainter [as 别名]
# 或者: from qgis.PyQt.QtGui.QPainter import begin [as 别名]
def testRenderMarkerLayerDisabled(self):
""" test that rendering a marker symbol with disabled layer works"""
layer = QgsSimpleMarkerSymbolLayer()
layer.setEnabled(False)
symbol = QgsMarkerSymbol()
symbol.changeSymbolLayer(0, layer)
image = QImage(200, 200, QImage.Format_RGB32)
painter = QPainter()
ms = QgsMapSettings()
geom = QgsGeometry.fromWkt('Point (1 2)')
f = QgsFeature()
f.setGeometry(geom)
extent = QgsRectangle(0, 0, 4, 4)
ms.setExtent(extent)
ms.setOutputSize(image.size())
context = QgsRenderContext.fromMapSettings(ms)
context.setPainter(painter)
context.setScaleFactor(96 / 25.4) # 96 DPI
painter.begin(image)
image.fill(QColor(255, 255, 255))
symbol.startRender(context)
symbol.renderFeature(f, context)
symbol.stopRender(context)
painter.end()
self.assertTrue(self.imageCheck('symbol_layer', 'symbollayer_disabled', image))
示例5: exportAsImage
# 需要导入模块: from qgis.PyQt.QtGui import QPainter [as 别名]
# 或者: from qgis.PyQt.QtGui.QPainter import begin [as 别名]
def exportAsImage(self):
self.repaintModel(controls=False)
filename, fileFilter = QFileDialog.getSaveFileName(self,
self.tr('Save Model As Image'), '',
self.tr('PNG files (*.png *.PNG)'))
if not filename:
return
if not filename.lower().endswith('.png'):
filename += '.png'
totalRect = self.scene.itemsBoundingRect()
totalRect.adjust(-10, -10, 10, 10)
imgRect = QRectF(0, 0, totalRect.width(), totalRect.height())
img = QImage(totalRect.width(), totalRect.height(),
QImage.Format_ARGB32_Premultiplied)
img.fill(Qt.white)
painter = QPainter()
painter.setRenderHint(QPainter.Antialiasing)
painter.begin(img)
self.scene.render(painter, imgRect, totalRect)
painter.end()
img.save(filename)
self.bar.pushMessage("", self.tr("Successfully exported model as image to <a href=\"{}\">{}</a>").format(QUrl.fromLocalFile(filename).toString(), QDir.toNativeSeparators(filename)), level=Qgis.Success, duration=5)
self.repaintModel(controls=True)
示例6: testSimpleLineWithOffset
# 需要导入模块: from qgis.PyQt.QtGui import QPainter [as 别名]
# 或者: from qgis.PyQt.QtGui.QPainter import begin [as 别名]
def testSimpleLineWithOffset(self):
""" test that rendering a polygon with simple line symbol with offset results in closed line"""
layer = QgsSimpleLineSymbolLayer()
layer.setOffset(-1)
symbol = QgsFillSymbol()
symbol.changeSymbolLayer(0, layer)
image = QImage(200, 200, QImage.Format_RGB32)
painter = QPainter()
ms = QgsMapSettings()
geom = QgsGeometry.fromWkt('Polygon((0 0, 10 0, 10 10, 0 10, 0 0))')
f = QgsFeature()
f.setGeometry(geom)
extent = geom.geometry().boundingBox()
# buffer extent by 10%
extent = extent.buffer((extent.height() + extent.width()) / 20.0)
ms.setExtent(extent)
ms.setOutputSize(image.size())
context = QgsRenderContext.fromMapSettings(ms)
context.setPainter(painter)
context.setScaleFactor(96 / 25.4) # 96 DPI
painter.begin(image)
image.fill(QColor(255, 255, 255))
symbol.startRender(context)
symbol.renderFeature(f, context)
symbol.stopRender(context)
painter.end()
self.assertTrue(self.imageCheck('symbol_layer', 'fill_simpleline_offset', image))
示例7: exportAsImage
# 需要导入模块: from qgis.PyQt.QtGui import QPainter [as 别名]
# 或者: from qgis.PyQt.QtGui.QPainter import begin [as 别名]
def exportAsImage(self):
self.repaintModel(controls=False)
filename, fileFilter = QFileDialog.getSaveFileName(self,
self.tr('Save Model As Image'), '',
self.tr('PNG files (*.png *.PNG)'))
if not filename:
return
if not filename.lower().endswith('.png'):
filename += '.png'
totalRect = self.scene.itemsBoundingRect()
totalRect.adjust(-10, -10, 10, 10)
imgRect = QRectF(0, 0, totalRect.width(), totalRect.height())
img = QImage(totalRect.width(), totalRect.height(),
QImage.Format_ARGB32_Premultiplied)
img.fill(Qt.white)
painter = QPainter()
painter.setRenderHint(QPainter.Antialiasing)
painter.begin(img)
self.scene.render(painter, imgRect, totalRect)
painter.end()
img.save(filename)
self.bar.pushMessage("", "Model was correctly exported as image", level=Qgis.Success, duration=5)
self.repaintModel(controls=True)
示例8: testRenderLineLayerDisabled
# 需要导入模块: from qgis.PyQt.QtGui import QPainter [as 别名]
# 或者: from qgis.PyQt.QtGui.QPainter import begin [as 别名]
def testRenderLineLayerDisabled(self):
""" test that rendering a line symbol with disabled layer works"""
layer = QgsSimpleLineSymbolLayer()
layer.setEnabled(False)
symbol = QgsLineSymbol()
symbol.changeSymbolLayer(0, layer)
image = QImage(200, 200, QImage.Format_RGB32)
painter = QPainter()
ms = QgsMapSettings()
geom = QgsGeometry.fromWkt('LineString (0 0,3 4,4 3)')
f = QgsFeature()
f.setGeometry(geom)
extent = geom.constGet().boundingBox()
# buffer extent by 10%
extent = extent.buffered((extent.height() + extent.width()) / 20.0)
ms.setExtent(extent)
ms.setOutputSize(image.size())
context = QgsRenderContext.fromMapSettings(ms)
context.setPainter(painter)
context.setScaleFactor(96 / 25.4) # 96 DPI
painter.begin(image)
image.fill(QColor(255, 255, 255))
symbol.startRender(context)
symbol.renderFeature(f, context)
symbol.stopRender(context)
painter.end()
self.assertTrue(self.imageCheck('symbol_layer', 'symbollayer_disabled', image))
示例9: renderGeometry
# 需要导入模块: from qgis.PyQt.QtGui import QPainter [as 别名]
# 或者: from qgis.PyQt.QtGui.QPainter import begin [as 别名]
def renderGeometry(self, geom):
f = QgsFeature()
f.setGeometry(geom)
image = QImage(200, 200, QImage.Format_RGB32)
painter = QPainter()
ms = QgsMapSettings()
extent = geom.get().boundingBox()
# buffer extent by 10%
if extent.width() > 0:
extent = extent.buffered((extent.height() + extent.width()) / 20.0)
else:
extent = extent.buffered(10)
ms.setExtent(extent)
ms.setOutputSize(image.size())
context = QgsRenderContext.fromMapSettings(ms)
context.setPainter(painter)
context.setScaleFactor(96 / 25.4) # 96 DPI
painter.begin(image)
try:
image.fill(QColor(0, 0, 0))
if geom.type() == QgsWkbTypes.PolygonGeometry:
self.fill_symbol.startRender(context)
self.fill_symbol.renderFeature(f, context)
self.fill_symbol.stopRender(context)
elif geom.type() == QgsWkbTypes.LineGeometry:
self.line_symbol.startRender(context)
self.line_symbol.renderFeature(f, context)
self.line_symbol.stopRender(context)
elif geom.type() == QgsWkbTypes.PointGeometry:
self.marker_symbol.startRender(context)
self.marker_symbol.renderFeature(f, context)
self.marker_symbol.stopRender(context)
else:
self.fail("Unknown type: " + geom.type())
finally:
painter.end()
return image
示例10: renderAnnotation
# 需要导入模块: from qgis.PyQt.QtGui import QPainter [as 别名]
# 或者: from qgis.PyQt.QtGui.QPainter import begin [as 别名]
def renderAnnotation(self, annotation, offset):
image = QImage(600, 400, QImage.Format_RGB32)
image.fill(QColor(0, 0, 0, 0))
QgsRenderChecker.drawBackground(image)
painter = QPainter()
ms = QgsMapSettings()
ms.setDestinationCrs(QgsCoordinateReferenceSystem(4326))
extent = QgsRectangle(0, 5, 40, 30)
ms.setExtent(extent)
ms.setOutputSize(image.size())
context = QgsRenderContext.fromMapSettings(ms)
context.setPainter(painter)
context.setScaleFactor(96 / 25.4) # 96 DPI
painter.begin(image)
painter.translate(offset.x(), offset.y())
annotation.render(context)
painter.end()
return image
示例11: __signal_pbSaveImg_clicked
# 需要导入模块: from qgis.PyQt.QtGui import QPainter [as 别名]
# 或者: from qgis.PyQt.QtGui.QPainter import begin [as 别名]
def __signal_pbSaveImg_clicked(self, cheked):
if type(self.__fileNameImg) == tuple:
self.__fileNameImg = self.__fileNameImg[0]
fileName = QFileDialog.getSaveFileName(self,
QApplication.translate(
"OpenLayersOverviewWidget",
"Save image"),
self.__fileNameImg,
QApplication.translate(
"OpenLayersOverviewWidget",
"Image(*.jpg)"))
if not fileName == '':
self.__fileNameImg = fileName
else:
return
img = QImage(self.webViewMap.page().mainFrame().contentsSize(),
QImage.Format_ARGB32_Premultiplied)
imgPainter = QPainter()
imgPainter.begin(img)
self.webViewMap.page().mainFrame().render(imgPainter)
imgPainter.end()
img.save(fileName[0], "JPEG")
示例12: testSimpleLineWithCustomDashPattern
# 需要导入模块: from qgis.PyQt.QtGui import QPainter [as 别名]
# 或者: from qgis.PyQt.QtGui.QPainter import begin [as 别名]
def testSimpleLineWithCustomDashPattern(self):
""" test that rendering a simple line symbol with custom dash pattern"""
layer = QgsSimpleLineSymbolLayer(QColor(0, 0, 0))
layer.setWidth(0.5)
layer.setCustomDashVector([2, 5])
layer.setUseCustomDashPattern(True)
symbol = QgsLineSymbol()
symbol.changeSymbolLayer(0, layer)
image = QImage(200, 200, QImage.Format_RGB32)
painter = QPainter()
ms = QgsMapSettings()
geom = QgsGeometry.fromWkt('LineString (0 0, 10 0, 10 10, 0 10, 0 0)')
f = QgsFeature()
f.setGeometry(geom)
extent = geom.constGet().boundingBox()
# buffer extent by 10%
extent = extent.buffered((extent.height() + extent.width()) / 20.0)
ms.setExtent(extent)
ms.setOutputSize(image.size())
context = QgsRenderContext.fromMapSettings(ms)
context.setPainter(painter)
context.setScaleFactor(96 / 25.4) # 96 DPI
painter.begin(image)
image.fill(QColor(255, 255, 255))
symbol.startRender(context)
symbol.renderFeature(f, context)
symbol.stopRender(context)
painter.end()
self.assertTrue(self.imageCheck('symbol_layer_simpleline_customdashpattern', 'simpleline_customdashpattern', image))
示例13: testReprojectionErrorsWhileRendering
# 需要导入模块: from qgis.PyQt.QtGui import QPainter [as 别名]
# 或者: from qgis.PyQt.QtGui.QPainter import begin [as 别名]
#.........这里部分代码省略.........
'15.91895592500009116 43.62872955900012073, 15.96631920700011165 43.64118073100003414, ' \
'15.90479576900014536 43.64801666900014254, 15.95297285200010151 43.65086497599999404, ' \
'15.95045006600008719 43.68854401200015047, 15.70630944100008719 43.76341380400005221, ' \
'15.6174422540000819 43.82550690300017493, 15.66309655000009116 43.81297435099999404, ' \
'15.67888431100004709 43.81928131700011875, 15.45508873800014271 43.92804596600014122, ' \
'15.14454186300011429 44.19546133000015686, 15.15219160200012993 44.23529694200014717, ' \
'15.11036217500011958 44.26434967700011214, 15.14063561300011429 44.28245677300013483, ' \
'15.17660566500009622 44.24994538000005662, 15.20777428500008455 44.27277252800014651, ' \
'15.19809004000012465 44.30166250200007028, 15.295258009000122 44.25067780199999845, ' \
'15.30274498800008587 44.29913971600016964, 15.26124108200011165 44.33258698100003414, ' \
'15.42448978000001603 44.26797109600006763, 15.52865644600009887 44.27179596600008438, ' \
'15.30795332100009887 44.35439687700007028, 15.00733483200014007 44.56972890800012976, ' \
'14.883799675000148 44.7236188820001388, 14.883799675000148 44.86147695500012844, 14.92164147200008983 ' \
'44.95880768400009231, 14.85279381600011561 45.09365469000000815, 14.65788821700004974 ' \
'45.19660065300017493, 14.57081139400008851 45.29364655200011214, 14.31153405000009116 ' \
'45.34398021000005485, 14.23259524800005238 45.14935944200000506, 14.17937259200007816 ' \
'45.13450755400005221, 14.19312584700008983 45.10561758000012844, 14.14389082100007045 ' \
'45.05939362200003018, 14.151377800000148 44.97748444200009033, 14.06885826900014536 ' \
'44.94953034100014122, 14.08383222700007309 44.9863955750000315, 14.04029381600014403 ' \
'45.03896719000015025, 14.0756942070000548 44.98371002800003282, 14.02051842500011958 ' \
'44.90110911700004692, 13.97266686300011429 44.90110911700004692, 13.99301191500009622 ' \
'44.88129303600014453, 13.97266686300011429 44.82664622599999404, 14.00001061300008587 ' \
'44.81305573100003414, 13.89014733200011165 44.83348216400010244, 13.91797936300014271 ' \
'44.77826569200009033, 13.90316816500009622 44.77240631700014717, 13.89698326900011693 ' \
'44.81305573100003414, 13.78711998800014271 44.87506745000008834, 13.84229576900008851 ' \
'44.88812897300006455, 13.79460696700010658 44.89496491100008768, 13.77409915500007287 ' \
'44.96381256700014717, 13.6232202480000808 45.07306549700014386, 13.61255944100014403 ' \
'45.11786530199999845, 13.72624759200004974 45.13450755400005221, 13.5959578790000819 ' \
'45.14541250200001343, 13.57545006600011561 45.26487864800007799, 13.60271243600001867 ' \
'45.28534577000012007, 13.57545006600011561 45.30646393400006389, 13.60954837300005238 ' \
'45.32013580900017757, 13.54127037900013875 45.34613678600005926, 13.50709069100014403 ' \
'45.51190827000000638, 13.62901778100007277 45.45898346000016943, 13.75929406800014476 ' \
'45.46316925100011019, 13.88900191200011136 45.42363678000005223, 13.98263960800005634 ' \
'45.47531321200001742, 13.97189091000012695 45.5142255660000643, 14.09291711400010172 ' \
'45.47391794800002174, 14.21869755100007637 45.49717234400004884, 14.37279667100006009 ' \
'45.47784535800009564, 14.4689148350000778 45.52559438100014688, 14.49857710800012001 ' \
'45.59618438800005435, 14.58094934100009255 45.66780792200010808, 14.66848921700008646 ' \
'45.53396596300005683, 14.79716353300005949 45.46518463200006011, 14.88160282300009385 ' \
'45.46978383400001178, 14.9226339110000481 45.51494903600017494, 15.13926151500010064 ' \
'45.43004465799999991, 15.32519331800011742 45.45283396399999276, 15.36136682100004691 ' \
'45.48203114900003641, 15.29666792800006192 45.52295888300012905, 15.2685559480001416 ' \
'45.60166208900012919, 15.37376916500011248 45.64021270800010655, 15.25501672300006817 ' \
'45.72346344000011698, 15.42906294700014769 45.77529490200011253, 15.45128381300008868 ' \
'45.81513743100013869, 15.67607629400006886 45.84169911700014666, 15.65943648300003588 ' \
'45.88882802400014782, 15.69798710100010908 46.0362092080000167, 15.58988000500005455 ' \
'46.11351715100001059, 15.62284956800010605 46.19170359400006021, 16.01920780400010358 ' \
'46.29882883700007312, 16.05961877400008575 46.33231516600015709, 16.0579651280001201 ' \
'46.37753204400003426, 16.2756262620000598 46.37316538500006402, 16.23490523300009158 ' \
'46.4933389280001137, 16.36947066200013978 46.54057118800012915))) '
geom = QgsGeometry.fromWkt(wkt)
f = QgsFeature()
f.setGeometry(geom)
image = QImage(200, 200, QImage.Format_RGB32)
painter = QPainter()
ms = QgsMapSettings()
crs = QgsCoordinateReferenceSystem.fromProj4('+proj=ortho +lat_0=36.5 +lon_0=-118.8 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m +no_defs')
self.assertTrue(crs.isValid())
ms.setDestinationCrs(crs)
ms.setExtent(QgsRectangle(1374999.8, 3912610.7, 4724462.5, 6505499.6))
ms.setOutputSize(image.size())
context = QgsRenderContext.fromMapSettings(ms)
context.setPainter(painter)
context.setScaleFactor(96 / 25.4) # 96 DPI
ct = QgsCoordinateTransform(QgsCoordinateReferenceSystem('epsg:4326'),
crs, QgsProject.instance())
self.assertTrue(ct.isValid())
context.setCoordinateTransform(ct)
context.setExtent(ct.transformBoundingBox(ms.extent(), QgsCoordinateTransform.ReverseTransform))
fill_symbol = QgsFillSymbol.createSimple({'color': '#ffffff', 'outline_color': '#ffffff', 'outline_width': '10'})
painter.begin(image)
try:
image.fill(QColor(0, 0, 0))
fill_symbol.startRender(context)
fill_symbol.renderFeature(f, context)
fill_symbol.stopRender(context)
finally:
painter.end()
assert self.imageCheck('Reprojection errors polygon', 'reprojection_errors_polygon', image)
#also test linestring
linestring = QgsGeometry(geom.constGet().boundary())
f.setGeometry(linestring)
line_symbol = QgsLineSymbol.createSimple({'color': '#ffffff', 'outline_width': '10'})
image = QImage(200, 200, QImage.Format_RGB32)
painter.begin(image)
try:
image.fill(QColor(0, 0, 0))
line_symbol.startRender(context)
line_symbol.renderFeature(f, context)
line_symbol.stopRender(context)
finally:
painter.end()
assert self.imageCheck('Reprojection errors linestring', 'reprojection_errors_linestring', image)
示例14: printMap
# 需要导入模块: from qgis.PyQt.QtGui import QPainter [as 别名]
# 或者: from qgis.PyQt.QtGui.QPainter import begin [as 别名]
def printMap(self,taxon):
# copy style from grid layer to output layer
outstyle = tempfile.gettempdir() + os.sep + "output.qml"
getLayerFromId(self.GRID_LAYER).saveNamedStyle(outstyle)
self.TAXON_GRID_LAYER.loadNamedStyle(outstyle)
# create layer set
baseLayer = getLayerFromId(self.BASE_LAYER)
if self.TAXON_GRID_LAYER.crs() != baseLayer.crs():
QMessageBox.information(self.dlg,"Distribution Map Generator",
"All layers must have the same projection.")
raise QgsCsException("All layers must have the same projection.")
baseCrs = baseLayer.crs()
if self.SECONDARY_LAYER != "None":
secondaryLayer = getLayerFromId(self.SECONDARY_LAYER)
if secondaryLayer.crs() != baseLayer.crs():
QMessageBox.information(self.dlg,"Distribution Map Generator",
"All layers must have the same projection.")
raise QgsCsException("All layers must have the same projection.")
else:
secondaryLayer = None
if self.SURFACE_LAYER != "None":
surfaceLayer = getLayerFromId(self.SURFACE_LAYER)
if surfaceLayer.crs() != baseLayer.crs():
QMessageBox.information(self.dlg,"Distribution Map Generator",
"All layers must have the same projection.")
raise QgsCsException("All layers must have the same projection.")
else:
surfaceLayer = None
lst = []
lst.append(self.TAXON_GRID_LAYER)
if self.SURFACE_LAYER != "None":
lst.append(surfaceLayer)
if self.SECONDARY_LAYER != "None":
lst.append(secondaryLayer)
lst.append(baseLayer)
ms = QgsMapSettings()
ms.setLayers(lst)
ms.setBackgroundColor(self.BACKGROUND_COLOUR)
# set extent (xmin,ymin,xmax,ymax)
rect = QgsRectangle(self.X_MIN,self.Y_MIN,self.X_MAX,self.Y_MAX)
ms.setExtent(rect)
# set output size
outputSize = QSize(self.OUT_WIDTH,self.OUT_HEIGHT)
ms.setOutputSize(outputSize)
# create painter
p = QPainter()
p.setRenderHint(QPainter.Antialiasing)
# create image (dimensions 325x299)
img = QImage(outputSize, QImage.Format_ARGB32_Premultiplied)
p.begin(img)
# do the rendering
r = QgsMapRendererCustomPainterJob(ms, p)
r.start()
r.waitForFinished()
p.end()
# save image
outdir = self.OUT_DIR
img.save(outdir+os.sep+str(str(taxon))+".png","png")