/*************************************************************************** qgsmultirenderchecker.sip -------------------------------------- Date : 6.11.2014 Copyright : (C) 2014 Matthias Kuhn Email : matthias at opengis dot ch *************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ class QgsMultiRenderChecker { %TypeHeaderCode #include %End public: QgsMultiRenderChecker(); /** * Base directory name for the control image (with control image path * suffixed) the path to the image will be constructed like this: * controlImagePath + '/' + mControlName + '/' + mControlName + '.png' */ void setControlName( const QString& theName ); void setControlPathPrefix( const QString& prefix ); /** * Set the path to the rendered image. If this is not set or set to QString::Null, an image * will be rendered based on the provided mapsettings * * @param renderedImagePath A path to the rendered image with which control images will be compared */ void setRenderedImage( const QString& renderedImagePath ); /** * Set the map settings to use to render the image * * @param mapSettings The map settings */ void setMapSettings( const QgsMapSettings& mapSettings ); /** * Set tolerance for color components used by runTest() * Default value is 0. * * @param theColorTolerance The maximum difference for each color component * including alpha to be considered correct. */ void setColorTolerance( unsigned int theColorTolerance ); /** * Test using renderer to generate the image to be compared. * * @param theTestName - to be used as the basis for writing a file to * e.g. /tmp/theTestName.png * * @param theMismatchCount - defaults to 0 - the number of pixels that * are allowed to be different from the control image. In some cases * rendering may be non-deterministic. This parameter allows you to account * for that by providing a tolerance. * * @note make sure to call setExpectedImage and setMapSettings first */ bool runTest( const QString& theTestName, unsigned int theMismatchCount = 0 ); /** * Returns a report for this test * * @return A report */ QString report() const; /** * @brief controlImagePath * @return */ QString controlImagePath() const; /** Draws a checkboard pattern for image backgrounds, so that transparency is visible * without requiring a transparent background for the image */ static void drawBackground( QImage* image ); };