LibreOffice Module vcl (master) 1
|
#include <BitmapGaussianSeparableBlurFilter.hxx>
Public Member Functions | |
BitmapGaussianSeparableBlurFilter (double fRadius) | |
virtual BitmapEx | execute (BitmapEx const &rBitmapEx) const override |
Separable Gaussian Blur filter and accepts a blur radius as a parameter so the user can change the strength of the blur. More... | |
Public Member Functions inherited from BitmapFilter | |
BitmapFilter () | |
virtual | ~BitmapFilter () |
virtual BitmapEx | execute (BitmapEx const &rBitmapEx) const =0 |
Static Private Member Functions | |
static bool | convolutionPass (const Bitmap &rBitmap, Bitmap &aNewBitmap, BitmapReadAccess const *pReadAcc, int aNumberOfContributions, const double *pWeights, int const *pPixels, const int *pCount) |
static std::vector< double > | makeBlurKernel (const double radius, int &rows) |
static void | blurContributions (const int aSize, const int aNumberOfContributions, const std::vector< double > &rBlurVector, std::vector< double > &rWeights, std::vector< int > &rPixels, std::vector< int > &rCounts) |
Private Attributes | |
double | mfRadius |
Additional Inherited Members | |
Static Public Member Functions inherited from BitmapFilter | |
static bool | Filter (BitmapEx &rBmpEx, BitmapFilter const &rFilter) |
static bool | Filter (Animation &rBmpEx, BitmapFilter const &rFilter) |
Definition at line 19 of file BitmapGaussianSeparableBlurFilter.hxx.
|
inline |
Definition at line 22 of file BitmapGaussianSeparableBlurFilter.hxx.
|
staticprivate |
Definition at line 166 of file BitmapGaussianSeparableBlurFilter.cxx.
References i.
Referenced by execute().
|
staticprivate |
Definition at line 84 of file BitmapGaussianSeparableBlurFilter.cxx.
References aIndex, Color::GetBlue(), BitmapReadAccess::GetColor(), Color::GetGreen(), Color::GetRed(), Bitmap::GetSizePixel(), Size::Height(), MinMax(), and Size::Width().
Referenced by execute().
|
overridevirtual |
Separable Gaussian Blur filter and accepts a blur radius as a parameter so the user can change the strength of the blur.
Radius of 1.0 is 3 * standard deviation of gauss function.
Separable Blur implementation uses 2x separable 1D convolution to process the image.
Implements BitmapFilter.
Definition at line 19 of file BitmapGaussianSeparableBlurFilter.cxx.
References blurContributions(), convolutionPass(), vcl::ScopedBitmapAccess< Access, Bitmap, Acquire >::get(), BitmapEx::GetBitmap(), Bitmap::GetSizePixel(), Size::Height(), makeBlurKernel(), mfRadius, vcl::N24_BPP, Bitmap::ReassignWithSize(), vcl::ScopedBitmapAccess< Access, Bitmap, Acquire >::reset(), and Size::Width().
|
staticprivate |
Definition at line 140 of file BitmapGaussianSeparableBlurFilter.cxx.
References distance, and index.
Referenced by execute().
|
private |
Definition at line 37 of file BitmapGaussianSeparableBlurFilter.hxx.
Referenced by execute().