QGIS API Documentation 3.37.0-Master (fdefdf9c27f)
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
QgsBlurEffect Class Reference

A paint effect which blurs a source picture, using a number of different blur methods. More...

#include <qgsblureffect.h>

Inheritance diagram for QgsBlurEffect:
Inheritance graph
[legend]

Public Types

enum  BlurMethod { StackBlur , GaussianBlur }
 Available blur methods (algorithms) More...
 
- Public Types inherited from QgsPaintEffect
enum  DrawMode { Modifier , Render , ModifyAndRender }
 Drawing modes for effects. More...
 

Public Member Functions

 QgsBlurEffect ()=default
 Constructor for QgsBlurEffect. More...
 
QPainter::CompositionMode blendMode () const
 Returns the blend mode for the effect. More...
 
double blurLevel () const
 Returns the blur level (radius) More...
 
const QgsMapUnitScaleblurMapUnitScale () const
 Returns the map unit scale used for the blur strength (radius). More...
 
BlurMethod blurMethod () const
 Returns the blur method (algorithm) used for performing the blur. More...
 
Qgis::RenderUnit blurUnit () const
 Returns the units used for the blur level (radius). More...
 
QgsBlurEffectclone () const override
 Duplicates an effect by creating a deep copy of the effect. More...
 
double opacity () const
 Returns the opacity for the effect. More...
 
QVariantMap properties () const override
 Returns the properties describing the paint effect encoded in a string format. More...
 
void readProperties (const QVariantMap &props) override
 Reads a string map of an effect's properties and restores the effect to the state described by the properties map. More...
 
void setBlendMode (const QPainter::CompositionMode mode)
 Sets the blend mode for the effect. More...
 
void setBlurLevel (const double level)
 Sets blur level (radius) More...
 
void setBlurMapUnitScale (const QgsMapUnitScale &scale)
 Sets the map unit scale used for the blur strength (radius). More...
 
void setBlurMethod (const BlurMethod method)
 Sets the blur method (algorithm) to use for performing the blur. More...
 
void setBlurUnit (const Qgis::RenderUnit unit)
 Sets the units used for the blur level (radius). More...
 
void setOpacity (const double opacity)
 Sets the opacity for the effect. More...
 
QString type () const override
 Returns the effect type. More...
 
- Public Member Functions inherited from QgsPaintEffect
 QgsPaintEffect ()=default
 Constructor for QgsPaintEffect. More...
 
 QgsPaintEffect (const QgsPaintEffect &other)
 
virtual ~QgsPaintEffect ()
 
virtual void begin (QgsRenderContext &context)
 Begins intercepting paint operations to a render context. More...
 
virtual QgsPaintEffectclone () const =0
 Duplicates an effect by creating a deep copy of the effect. More...
 
DrawMode drawMode () const
 Returns the draw mode for the effect. More...
 
bool enabled () const
 Returns whether the effect is enabled. More...
 
virtual void end (QgsRenderContext &context)
 Ends interception of paint operations to a render context, and draws the result to the render context after being modified by the effect. More...
 
virtual QVariantMap properties () const =0
 Returns the properties describing the paint effect encoded in a string format. More...
 
virtual bool readProperties (const QDomElement &element)
 Restores the effect to the state described by a DOM element. More...
 
virtual void readProperties (const QVariantMap &props)=0
 Reads a string map of an effect's properties and restores the effect to the state described by the properties map. More...
 
virtual void render (QPicture &picture, QgsRenderContext &context)
 Renders a picture using the effect. More...
 
virtual bool saveProperties (QDomDocument &doc, QDomElement &element) const
 Saves the current state of the effect to a DOM element. More...
 
void setDrawMode (DrawMode drawMode)
 Sets the draw mode for the effect. More...
 
void setEnabled (bool enabled)
 Sets whether the effect is enabled. More...
 
virtual QString type () const =0
 Returns the effect type. More...
 

Static Public Member Functions

static QgsPaintEffectcreate (const QVariantMap &map)
 Creates a new QgsBlurEffect effect from a properties string map. More...
 

Protected Member Functions

QRectF boundingRect (const QRectF &rect, const QgsRenderContext &context) const override
 Returns the bounding rect required for drawing the effect. More...
 
void draw (QgsRenderContext &context) override
 Handles drawing of the effect's result on to the specified render context. More...
 
- Protected Member Functions inherited from QgsPaintEffect
virtual QRectF boundingRect (const QRectF &rect, const QgsRenderContext &context) const
 Returns the bounding rect required for drawing the effect. More...
 
virtual void draw (QgsRenderContext &context)=0
 Handles drawing of the effect's result on to the specified render context. More...
 
void drawSource (QPainter &painter)
 Draws the source QPicture onto the specified painter. More...
 
void fixQPictureDpi (QPainter *painter) const
 Applies a workaround to a QPainter to avoid an issue with incorrect scaling when drawing QPictures. More...
 
QPointF imageOffset (const QgsRenderContext &context) const
 Returns the offset which should be used when drawing the source image on to a destination render context. More...
 
const QPicture * source () const
 Returns the source QPicture. More...
 
QImage * sourceAsImage (QgsRenderContext &context)
 Returns the source QPicture rendered to a new QImage. More...
 

Additional Inherited Members

- Protected Attributes inherited from QgsPaintEffect
DrawMode mDrawMode = ModifyAndRender
 
bool mEnabled = true
 
bool requiresQPainterDpiFix = true
 

Detailed Description

A paint effect which blurs a source picture, using a number of different blur methods.

Definition at line 36 of file qgsblureffect.h.

Member Enumeration Documentation

◆ BlurMethod

Available blur methods (algorithms)

Enumerator
StackBlur 

Stack blur, a fast but low quality blur. Valid blur level values are between 0 - 16.

GaussianBlur 

Gaussian blur, a slower but high quality blur. Blur level values are the distance in pixels for the blur operation.

Definition at line 42 of file qgsblureffect.h.

Constructor & Destructor Documentation

◆ QgsBlurEffect()

QgsBlurEffect::QgsBlurEffect ( )
default

Constructor for QgsBlurEffect.

Member Function Documentation

◆ blendMode()

QPainter::CompositionMode QgsBlurEffect::blendMode ( ) const
inline

Returns the blend mode for the effect.

Returns
blend mode used for drawing the effect on to a destination paint device
See also
setBlendMode

Definition at line 171 of file qgsblureffect.h.

◆ blurLevel()

double QgsBlurEffect::blurLevel ( ) const
inline

Returns the blur level (radius)

Returns
blur level. Depending on the current blurMethod(), this parameter has different effects
See also
setBlurLevel
blurUnit
blurMapUnitScale
blurMethod

Definition at line 85 of file qgsblureffect.h.

◆ blurMapUnitScale()

const QgsMapUnitScale & QgsBlurEffect::blurMapUnitScale ( ) const
inline

Returns the map unit scale used for the blur strength (radius).

Returns
map unit scale for blur strength
See also
setBlurMapUnitScale
blurLevel
blurUnit
Since
QGIS 3.4.9

Definition at line 125 of file qgsblureffect.h.

◆ blurMethod()

BlurMethod QgsBlurEffect::blurMethod ( ) const
inline

Returns the blur method (algorithm) used for performing the blur.

Returns
blur method
See also
setBlurMethod

Definition at line 139 of file qgsblureffect.h.

◆ blurUnit()

Qgis::RenderUnit QgsBlurEffect::blurUnit ( ) const
inline

Returns the units used for the blur level (radius).

Returns
units for blur level
See also
setBlurUnit
blurLevel
blurMapUnitScale
Since
QGIS 3.4.9

Definition at line 105 of file qgsblureffect.h.

◆ boundingRect()

QRectF QgsBlurEffect::boundingRect ( const QRectF &  rect,
const QgsRenderContext context 
) const
overrideprotectedvirtual

Returns the bounding rect required for drawing the effect.

This method can be used to expand the bounding rect of a source picture to account for offset or blurring effects.

Parameters
rectoriginal source bounding rect
contextdestination render context
Returns
modified bounding rect
See also
sourceAsImage

Reimplemented from QgsPaintEffect.

Definition at line 143 of file qgsblureffect.cpp.

◆ clone()

QgsBlurEffect * QgsBlurEffect::clone ( ) const
overridevirtual

Duplicates an effect by creating a deep copy of the effect.

Returns
clone of paint effect

Implements QgsPaintEffect.

Definition at line 137 of file qgsblureffect.cpp.

◆ create()

QgsPaintEffect * QgsBlurEffect::create ( const QVariantMap &  map)
static

Creates a new QgsBlurEffect effect from a properties string map.

Parameters
mapencoded properties string map
Returns
new QgsBlurEffect

Definition at line 24 of file qgsblureffect.cpp.

◆ draw()

void QgsBlurEffect::draw ( QgsRenderContext context)
overrideprotectedvirtual

Handles drawing of the effect's result on to the specified render context.

Derived classes must reimplement this method to apply any transformations to the source QPicture and draw the result using the context's painter.

Parameters
contextdestination render context
See also
drawSource

Implements QgsPaintEffect.

Definition at line 31 of file qgsblureffect.cpp.

◆ opacity()

double QgsBlurEffect::opacity ( ) const
inline

Returns the opacity for the effect.

Returns
opacity value between 0 and 1 inclusive, where 0 is fully transparent and 1 is fully opaque
See also
setOpacity()

Definition at line 155 of file qgsblureffect.h.

◆ properties()

QVariantMap QgsBlurEffect::properties ( ) const
overridevirtual

Returns the properties describing the paint effect encoded in a string format.

Returns
string map of properties, in the form property key, value
See also
readProperties
saveProperties

Implements QgsPaintEffect.

Definition at line 77 of file qgsblureffect.cpp.

◆ readProperties()

void QgsBlurEffect::readProperties ( const QVariantMap &  props)
overridevirtual

Reads a string map of an effect's properties and restores the effect to the state described by the properties map.

Parameters
propseffect properties encoded in a string map
See also
properties

Implements QgsPaintEffect.

Definition at line 91 of file qgsblureffect.cpp.

◆ setBlendMode()

void QgsBlurEffect::setBlendMode ( const QPainter::CompositionMode  mode)
inline

Sets the blend mode for the effect.

Parameters
modeblend mode used for drawing the effect on to a destination paint device
See also
blendMode

Definition at line 163 of file qgsblureffect.h.

◆ setBlurLevel()

void QgsBlurEffect::setBlurLevel ( const double  level)
inline

Sets blur level (radius)

Parameters
levelblur level. Depending on the current blurMethod(), this parameter has different effects
See also
blurLevel
setBlurUnit
setBlurMapUnitScale
setBlurMethod

Definition at line 74 of file qgsblureffect.h.

◆ setBlurMapUnitScale()

void QgsBlurEffect::setBlurMapUnitScale ( const QgsMapUnitScale scale)
inline

Sets the map unit scale used for the blur strength (radius).

Parameters
scalemap unit scale for blur strength
See also
blurMapUnitScale
setBlurLevel
setBlurUnit
Since
QGIS 3.4.9

Definition at line 115 of file qgsblureffect.h.

◆ setBlurMethod()

void QgsBlurEffect::setBlurMethod ( const BlurMethod  method)
inline

Sets the blur method (algorithm) to use for performing the blur.

Parameters
methodblur method
See also
blurMethod

Definition at line 132 of file qgsblureffect.h.

◆ setBlurUnit()

void QgsBlurEffect::setBlurUnit ( const Qgis::RenderUnit  unit)
inline

Sets the units used for the blur level (radius).

Parameters
unitunits for blur level
See also
blurUnit
setBlurLevel
setBlurMapUnitScale
Since
QGIS 3.4.9

Definition at line 95 of file qgsblureffect.h.

◆ setOpacity()

void QgsBlurEffect::setOpacity ( const double  opacity)
inline

Sets the opacity for the effect.

Parameters
opacitydouble between 0 and 1 inclusive, where 0 is fully transparent and 1 is fully opaque
See also
opacity()

Definition at line 147 of file qgsblureffect.h.

◆ type()

QString QgsBlurEffect::type ( ) const
inlineoverridevirtual

Returns the effect type.

Returns
unique string representation of the effect type

Implements QgsPaintEffect.

Definition at line 60 of file qgsblureffect.h.


The documentation for this class was generated from the following files: