diff --git a/tests/src/python/test_qgsrasterlayer.py b/tests/src/python/test_qgsrasterlayer.py index bf245d21ed79..6cd5507fec56 100644 --- a/tests/src/python/test_qgsrasterlayer.py +++ b/tests/src/python/test_qgsrasterlayer.py @@ -481,6 +481,64 @@ def testGammaCorrection(self): self.assertTrue(checker.runTest("expected_raster_gamma222"), "Gamma correction (gamma = 2.22) rendering test failed") + def testBrightnessContrast(self): + """ test raster brightness/contrast filter""" + path = os.path.join(unitTestDataPath(), + 'landsat_4326.tif') + info = QFileInfo(path) + base_name = info.baseName() + layer = QgsRasterLayer(path, base_name) + self.assertTrue(layer.isValid(), 'Raster not loaded: {}'.format(path)) + + layer.brightnessFilter().setContrast(100) + + ms = QgsMapSettings() + ms.setLayers([layer]) + ms.setExtent(layer.extent()) + + checker = QgsRenderChecker() + checker.setControlName("expected_raster_contrast100") + checker.setMapSettings(ms) + + self.assertTrue(checker.runTest("expected_raster_contrast100"), "Contrast (c = 100) rendering test failed") + + layer.brightnessFilter().setContrast(-30) + + ms = QgsMapSettings() + ms.setLayers([layer]) + ms.setExtent(layer.extent()) + + checker = QgsRenderChecker() + checker.setControlName("expected_raster_contrast30") + checker.setMapSettings(ms) + + self.assertTrue(checker.runTest("expected_raster_contrast30"), "Contrast (c = -30) rendering test failed") + + layer.brightnessFilter().setContrast(0) + layer.brightnessFilter().setBrightness(50) + + ms = QgsMapSettings() + ms.setLayers([layer]) + ms.setExtent(layer.extent()) + + checker = QgsRenderChecker() + checker.setControlName("expected_raster_brightness50") + checker.setMapSettings(ms) + + self.assertTrue(checker.runTest("expected_raster_brightness50"), "Brightness (b = 50) rendering test failed") + + layer.brightnessFilter().setBrightness(-20) + + ms = QgsMapSettings() + ms.setLayers([layer]) + ms.setExtent(layer.extent()) + + checker = QgsRenderChecker() + checker.setControlName("expected_raster_brightness20") + checker.setMapSettings(ms) + + self.assertTrue(checker.runTest("expected_raster_brightness20"), "Brightness (b = -20) rendering test failed") + def testPalettedColorTableToClassData(self): entries = [QgsColorRampShader.ColorRampItem(5, QColor(255, 0, 0), 'item1'), QgsColorRampShader.ColorRampItem(3, QColor(0, 255, 0), 'item2'), diff --git a/tests/testdata/control_images/expected_raster_brightness20/expected_raster_brightness20.png b/tests/testdata/control_images/expected_raster_brightness20/expected_raster_brightness20.png new file mode 100644 index 000000000000..f6bb8897d39b Binary files /dev/null and b/tests/testdata/control_images/expected_raster_brightness20/expected_raster_brightness20.png differ diff --git a/tests/testdata/control_images/expected_raster_brightness50/expected_raster_brightness50.png b/tests/testdata/control_images/expected_raster_brightness50/expected_raster_brightness50.png new file mode 100644 index 000000000000..cd8f9c17f6ab Binary files /dev/null and b/tests/testdata/control_images/expected_raster_brightness50/expected_raster_brightness50.png differ diff --git a/tests/testdata/control_images/expected_raster_contrast100/expected_raster_contrast100.png b/tests/testdata/control_images/expected_raster_contrast100/expected_raster_contrast100.png new file mode 100644 index 000000000000..a45df27e920e Binary files /dev/null and b/tests/testdata/control_images/expected_raster_contrast100/expected_raster_contrast100.png differ diff --git a/tests/testdata/control_images/expected_raster_contrast30/expected_raster_contrast30.png b/tests/testdata/control_images/expected_raster_contrast30/expected_raster_contrast30.png new file mode 100644 index 000000000000..98192237fa67 Binary files /dev/null and b/tests/testdata/control_images/expected_raster_contrast30/expected_raster_contrast30.png differ