35   switch ( mBlurMethod )
    38       drawStackBlur( context );
    41       drawGaussianBlur( context );
    51   drawBlurredImage( context, im );
    58   drawBlurredImage( context, *im );
    62 void QgsBlurEffect::drawBlurredImage( 
QgsRenderContext &context, QImage &image )
    67   QPainter *painter = context.
painter();
    69   painter->setCompositionMode( mBlendMode );
    70   painter->drawImage( 
imageOffset( context ), image );
    77   props.insert( QStringLiteral( 
"enabled" ), 
mEnabled ? QStringLiteral( 
"1" ) : QStringLiteral( 
"0" ) );
    78   props.insert( QStringLiteral( 
"draw_mode" ), QString::number( static_cast< int >( 
mDrawMode ) ) );
    79   props.insert( QStringLiteral( 
"blend_mode" ), QString::number( static_cast< int >( mBlendMode ) ) );
    80   props.insert( QStringLiteral( 
"opacity" ), QString::number( mOpacity ) );
    81   props.insert( QStringLiteral( 
"blur_level" ), QString::number( mBlurLevel ) );
    84   props.insert( QStringLiteral( 
"blur_method" ), QString::number( static_cast< int >( mBlurMethod ) ) );
    91   QPainter::CompositionMode mode = 
static_cast< QPainter::CompositionMode 
>( props.value( QStringLiteral( 
"blend_mode" ) ).toInt( &ok ) );
    96   if ( props.contains( QStringLiteral( 
"transparency" ) ) )
    98     double transparency = props.value( QStringLiteral( 
"transparency" ) ).toDouble( &ok );
   101       mOpacity = 1.0 - transparency;
   106     double opacity = props.value( QStringLiteral( 
"opacity" ) ).toDouble( &ok );
   113   mEnabled = props.value( QStringLiteral( 
"enabled" ), QStringLiteral( 
"1" ) ).toInt();
   115   double level = props.value( QStringLiteral( 
"blur_level" ) ).toDouble( &ok );
   119     if ( !props.contains( QStringLiteral( 
"blur_unit" ) ) )
   122       mBlurLevel *= 0.2645;
   130     mBlurMethod = method;
   144   double spread = blurLevel * 2.0 + 10;
   145   return rect.adjusted( -spread, -spread, spread, spread );
 static void multiplyOpacity(QImage &image, double factor)
Multiplies opacity of image pixel values by a factor. 
 
double opacity() const 
Returns the opacity for the effect. 
 
double convertToPainterUnits(double size, QgsUnitTypes::RenderUnit unit, const QgsMapUnitScale &scale=QgsMapUnitScale()) const 
Converts a size from the specified units to painter units (pixels). 
 
QgsStringMap properties() const override
Returns the properties describing the paint effect encoded in a string format. 
 
QgsBlurEffect()=default
Constructor for QgsBlurEffect. 
 
bool enabled() const 
Returns whether the effect is enabled. 
 
Base class for visual effects which can be applied to QPicture drawings. 
 
static QString encodeMapUnitScale(const QgsMapUnitScale &mapUnitScale)
 
Gaussian blur, a slower but high quality blur. Blur level values are the distance in pixels for the b...
 
QMap< QString, QString > QgsStringMap
 
QImage * sourceAsImage(QgsRenderContext &context)
Returns the source QPicture rendered to a new QImage. 
 
Stack blur, a fast but low quality blur. Valid blur level values are between 0 - 16. 
 
BlurMethod
Available blur methods (algorithms) 
 
QPointF imageOffset(const QgsRenderContext &context) const 
Returns the offset which should be used when drawing the source image on to a destination render cont...
 
static Q_INVOKABLE QgsUnitTypes::RenderUnit decodeRenderUnit(const QString &string, bool *ok=nullptr)
Decodes a render unit from a string. 
 
A paint effect which blurs a source picture, using a number of different blur methods. 
 
DrawMode
Drawing modes for effects. 
 
static Q_INVOKABLE QString encodeUnit(QgsUnitTypes::DistanceUnit unit)
Encodes a distance unit to a string. 
 
static QImage * gaussianBlur(QImage &image, int radius)
Performs a gaussian blur on an image. 
 
Contains information about the context of a rendering operation. 
 
void draw(QgsRenderContext &context) override
Handles drawing of the effect's result on to the specified render context. 
 
QPainter * painter()
Returns the destination QPainter for the render operation. 
 
static void stackBlur(QImage &image, int radius, bool alphaOnly=false)
Performs a stack blur on an image. 
 
static QgsPaintEffect * create(const QgsStringMap &map)
Creates a new QgsBlurEffect effect from a properties string map. 
 
static QgsMapUnitScale decodeMapUnitScale(const QString &str)
 
const QPicture * source() const 
Returns the source QPicture. 
 
double blurLevel() const 
Returns the blur level (radius) 
 
void readProperties(const QgsStringMap &props) override
Reads a string map of an effect's properties and restores the effect to the state described by the pr...
 
QgsBlurEffect * clone() const override
Duplicates an effect by creating a deep copy of the effect. 
 
QRectF boundingRect(const QRectF &rect, const QgsRenderContext &context) const override
Returns the bounding rect required for drawing the effect.