本文整理汇总了Python中qgis.PyQt.QtGui.QPainter.setRenderHint方法的典型用法代码示例。如果您正苦于以下问题:Python QPainter.setRenderHint方法的具体用法?Python QPainter.setRenderHint怎么用?Python QPainter.setRenderHint使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类qgis.PyQt.QtGui.QPainter
的用法示例。
在下文中一共展示了QPainter.setRenderHint方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: exportAsImage
# 需要导入模块: from qgis.PyQt.QtGui import QPainter [as 别名]
# 或者: from qgis.PyQt.QtGui.QPainter import setRenderHint [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)
示例2: exportAsImage
# 需要导入模块: from qgis.PyQt.QtGui import QPainter [as 别名]
# 或者: from qgis.PyQt.QtGui.QPainter import setRenderHint [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)
示例3: exportAsImage
# 需要导入模块: from qgis.PyQt.QtGui import QPainter [as 别名]
# 或者: from qgis.PyQt.QtGui.QPainter import setRenderHint [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)
示例4: testFromQPainter
# 需要导入模块: from qgis.PyQt.QtGui import QPainter [as 别名]
# 或者: from qgis.PyQt.QtGui.QPainter import setRenderHint [as 别名]
def testFromQPainter(self):
""" test QgsRenderContext.fromQPainter """
# no painter
c = QgsRenderContext.fromQPainter(None)
self.assertFalse(c.painter())
# assuming 88 dpi as fallback
self.assertAlmostEqual(c.scaleFactor(), 88 / 25.4, 3)
# no painter destination
p = QPainter()
c = QgsRenderContext.fromQPainter(p)
self.assertEqual(c.painter(), p)
self.assertEqual(c.testFlag(QgsRenderContext.Antialiasing), False)
self.assertAlmostEqual(c.scaleFactor(), 88 / 25.4, 3)
im = QImage(1000, 600, QImage.Format_RGB32)
dots_per_m = 300 / 25.4 * 1000 # 300 dpi to dots per m
im.setDotsPerMeterX(dots_per_m)
im.setDotsPerMeterY(dots_per_m)
p = QPainter(im)
p.setRenderHint(QPainter.Antialiasing)
c = QgsRenderContext.fromQPainter(p)
self.assertEqual(c.painter(), p)
self.assertEqual(c.testFlag(QgsRenderContext.Antialiasing), True)
self.assertAlmostEqual(c.scaleFactor(), dots_per_m / 1000, 3) # scaleFactor should be pixels/mm
示例5: _svg_to_png
# 需要导入模块: from qgis.PyQt.QtGui import QPainter [as 别名]
# 或者: from qgis.PyQt.QtGui.QPainter import setRenderHint [as 别名]
def _svg_to_png(svg_file_path, rendered_file_path, width):
svgr = QSvgRenderer(svg_file_path)
height = width / svgr.viewBoxF().width() * svgr.viewBoxF().height()
image = QImage(width, height, QImage.Format_ARGB32)
image.fill(Qt.transparent)
p = QPainter(image)
p.setRenderHint(QPainter.Antialiasing, False)
svgr.render(p)
p.end()
res = image.save(rendered_file_path, 'png')
if not res:
os.unlink(rendered_file_path)
示例6: paintEvent
# 需要导入模块: from qgis.PyQt.QtGui import QPainter [as 别名]
# 或者: from qgis.PyQt.QtGui.QPainter import setRenderHint [as 别名]
def paintEvent(self, ev):
sz = self.size()
l = 0.5 * min(sz.width(), sz.height())
painter = QPainter(self)
painter.setPen(Qt.NoPen)
painter.setRenderHint(QPainter.Antialiasing, True)
for i in range(0, self.ticks):
painter.save()
painter.translate(0.5 * sz.width(), 0.5 * sz.height())
painter.rotate((360. * i) / self.ticks)
painter.translate(0.4 * l, 0)
k = float(self.ticks + (i - self.counter)) % self.ticks / self.ticks
painter.setBrush(QColor(0, 0, 0, 255 * (0.9 * k + 0.1)))
painter.drawRoundedRect(
QRect(0, -0.1 * l, 0.6 * l, 0.2 * l), 0.15 * l, 0.1 * l)
painter.restore()
示例7: printMap
# 需要导入模块: from qgis.PyQt.QtGui import QPainter [as 别名]
# 或者: from qgis.PyQt.QtGui.QPainter import setRenderHint [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")