本文整理汇总了Python中qgis.core.QgsRenderChecker.compareImages方法的典型用法代码示例。如果您正苦于以下问题:Python QgsRenderChecker.compareImages方法的具体用法?Python QgsRenderChecker.compareImages怎么用?Python QgsRenderChecker.compareImages使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类qgis.core.QgsRenderChecker
的用法示例。
在下文中一共展示了QgsRenderChecker.compareImages方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: renderCheck
# 需要导入模块: from qgis.core import QgsRenderChecker [as 别名]
# 或者: from qgis.core.QgsRenderChecker import compareImages [as 别名]
def renderCheck(self, mismatch=0, colortol=0, imgpath='', grpprefix=''):
"""Check rendered map canvas or existing image against control image
:mismatch: number of pixels different from control, and still valid
:colortol: maximum difference for each color component including alpha
:imgpath: existing image; if present, skips rendering canvas
:grpprefix: compare test image/rendering against different test group
"""
if not grpprefix:
grpprefix = self._TestGroupPrefix
ctl_path = self.controlImagePath(grpprefix)
if not os.path.exists(ctl_path):
raise OSError('Missing control image: {0}'.format(ctl_path))
chk = QgsRenderChecker()
chk.setControlPathPrefix('expected_' + grpprefix)
chk.setControlName(self._Test)
chk.setColorTolerance(colortol)
ms = self._MapSettings # class settings
if self._TestMapSettings is not None:
ms = self._TestMapSettings # per test settings
chk.setMapSettings(ms)
# noinspection PyUnusedLocal
res = False
if imgpath:
res = chk.compareImages(self._Test, mismatch, str(imgpath))
else:
res = chk.runTest(self._Test, mismatch)
if PALREPORT and not res: # don't report ok checks
testname = self._TestGroup + ' . ' + self._Test
PALREPORTS[testname] = str(chk.report().toLocal8Bit())
msg = '\nRender check failed for "{0}"'.format(self._Test)
return res, msg
示例2: runTestForLayer
# 需要导入模块: from qgis.core import QgsRenderChecker [as 别名]
# 或者: from qgis.core.QgsRenderChecker import compareImages [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)
示例3: _img_diff
# 需要导入模块: from qgis.core import QgsRenderChecker [as 别名]
# 或者: from qgis.core.QgsRenderChecker import compareImages [as 别名]
def _img_diff(self, image, control_image, max_diff):
temp_image = "/tmp/%s_result.png" % control_image
with open(temp_image, "w") as f:
f.write(image)
control = QgsRenderChecker()
control.setControlPathPrefix("qgis_server_accesscontrol")
control.setControlName(control_image)
control.setRenderedImage(temp_image)
return control.compareImages(control_image), control.report()
示例4: _img_diff
# 需要导入模块: from qgis.core import QgsRenderChecker [as 别名]
# 或者: from qgis.core.QgsRenderChecker import compareImages [as 别名]
def _img_diff(self, image, control_image, max_diff, max_size_diff=QSize()):
temp_image = path.join(tempfile.gettempdir(), "%s_result.png" % control_image)
with open(temp_image, "w") as f:
f.write(image)
control = QgsRenderChecker()
control.setControlPathPrefix("qgis_server_accesscontrol")
control.setControlName(control_image)
control.setRenderedImage(temp_image)
if max_size_diff.isValid():
control.setSizeTolerance(max_size_diff.width(), max_size_diff.height())
return control.compareImages(control_image), control.report()
示例5: test_getmap
# 需要导入模块: from qgis.core import QgsRenderChecker [as 别名]
# 或者: from qgis.core.QgsRenderChecker import compareImages [as 别名]
def test_getmap(self):
test_name = 'qgis_local_server'
success, img_path, url = MAPSERV.get_map(self.getmap_params())
msg = '\nLocal server get_map failed'
assert success, msg
chk = QgsRenderChecker()
chk.setControlName('expected_' + test_name)
# chk.setMapRenderer(None)
res = chk.compareImages(test_name, 0, img_path)
if QGIS_TEST_REPORT and not res: # don't report ok checks
TESTREPORTS[test_name] = chk.report()
msg = '\nRender check failed for "{0}"'.format(test_name)
assert res, msg
示例6: imageCheck
# 需要导入模块: from qgis.core import QgsRenderChecker [as 别名]
# 或者: from qgis.core.QgsRenderChecker import compareImages [as 别名]
def imageCheck(self, name, reference_image, image):
self.report += "<h2>Render {}</h2>\n".format(name)
temp_dir = QDir.tempPath() + "/"
file_name = temp_dir + "symbol_" + name + ".png"
image.save(file_name, "PNG")
checker = QgsRenderChecker()
checker.setControlPathPrefix("symbolv2")
checker.setControlName("expected_" + reference_image)
checker.setRenderedImage(file_name)
checker.setColorTolerance(2)
result = checker.compareImages(name, 20)
self.report += checker.report()
print(self.report)
return result
示例7: _pdf_diff
# 需要导入模块: from qgis.core import QgsRenderChecker [as 别名]
# 或者: from qgis.core.QgsRenderChecker import compareImages [as 别名]
def _pdf_diff(self, pdf, control_image, max_diff, max_size_diff=QSize(), dpi=96):
temp_pdf = os.path.join(tempfile.gettempdir(), "%s_result.pdf" % control_image)
with open(temp_pdf, "wb") as f:
f.write(pdf)
temp_image = os.path.join(tempfile.gettempdir(), "%s_result.png" % control_image)
self._pdf_to_png(temp_pdf, temp_image, dpi=dpi, page=1)
control = QgsRenderChecker()
control.setControlPathPrefix("qgis_server")
control.setControlName(control_image)
control.setRenderedImage(temp_image)
if max_size_diff.isValid():
control.setSizeTolerance(max_size_diff.width(), max_size_diff.height())
return control.compareImages(control_image, max_diff), control.report()
示例8: _img_diff
# 需要导入模块: from qgis.core import QgsRenderChecker [as 别名]
# 或者: from qgis.core.QgsRenderChecker import compareImages [as 别名]
def _img_diff(self, image, control_image, max_diff, max_size_diff=QSize(), outputJpg=False):
extFile = 'png'
if outputJpg:
extFile = 'jpg'
temp_image = os.path.join(tempfile.gettempdir(), "%s_result.%s" % (control_image, extFile))
with open(temp_image, "wb") as f:
f.write(image)
control = QgsRenderChecker()
control.setControlPathPrefix("qgis_server_accesscontrol")
control.setControlName(control_image)
control.setRenderedImage(temp_image)
if max_size_diff.isValid():
control.setSizeTolerance(max_size_diff.width(), max_size_diff.height())
return control.compareImages(control_image), control.report()
示例9: imageCheck
# 需要导入模块: from qgis.core import QgsRenderChecker [as 别名]
# 或者: from qgis.core.QgsRenderChecker import compareImages [as 别名]
def imageCheck(self, name, reference_image, image):
self.report += "<h2>Render {}</h2>\n".format(name)
temp_dir = QDir.tempPath() + '/'
file_name = temp_dir + 'svg_' + name + ".png"
output_image = QImage(image.size(), QImage.Format_RGB32)
QgsMultiRenderChecker.drawBackground(output_image)
painter = QPainter(output_image)
painter.drawImage(0, 0, image)
painter.end()
output_image.save(file_name, "PNG")
checker = QgsRenderChecker()
checker.setControlPathPrefix("svg_cache")
checker.setControlName("expected_" + reference_image)
checker.setRenderedImage(file_name)
checker.setColorTolerance(2)
result = checker.compareImages(name, 20)
self.report += checker.report()
print((self.report))
return result