31class RandomNumberGenerator;
55 struct Q_DECL_HIDDEN Args
120 explicit BlurFXFilter(QObject*
const parent =
nullptr);
121 explicit BlurFXFilter(DImg*
const orgImage,
122 QObject*
const parent =
nullptr,
123 int blurFXType = ZoomBlur,
126 ~BlurFXFilter()
override;
130 return QLatin1String(
"digikam:BlurFXFilter");
133 static QString DisplayableName();
137 return QList<int>() << 1;
147 return FilterIdentifier();
152 void readParameters(
const FilterAction& action)
override;
156 void filterImage()
override;
159 void softenerBlur(
DImg*
const orgImage,
DImg*
const destImage);
160 void softenerBlurMultithreaded(
const Args& prm);
162 void shakeBlur(
DImg*
const orgImage,
DImg*
const destImage,
int Distance);
163 void shakeBlurStage1Multithreaded(
const Args& prm);
164 void shakeBlurStage2Multithreaded(
const Args& prm);
166 void frostGlass(
DImg*
const orgImage,
DImg*
const destImage,
int Frost);
169 void zoomBlur(
DImg*
const orgImage,
DImg*
const destImage,
int X,
int Y,
int Distance,
const QRect& pArea=QRect());
170 void zoomBlurMultithreaded(
const Args& prm);
172 void radialBlur(
DImg*
const orgImage,
DImg*
const destImage,
int X,
int Y,
int Distance,
const QRect& pArea=QRect());
173 void radialBlurMultithreaded(
const Args& prm);
175 void focusBlur(
DImg*
const orgImage,
DImg*
const destImage,
int X,
int Y,
int BlurRadius,
int BlendRadius,
176 bool bInversed=
false,
const QRect& pArea=QRect());
177 void focusBlurMultithreaded(
const Args& prm);
179 void farBlur(
DImg*
const orgImage,
DImg*
const destImage,
int Distance);
181 void motionBlur(
DImg*
const orgImage,
DImg*
const destImage,
int Distance,
double Angle=0.0);
182 void motionBlurMultithreaded(
const Args& prm);
184 void smartBlur(
DImg*
const orgImage,
DImg*
const destImage,
int Radius,
int Strength);
185 void smartBlurStage1Multithreaded(
const Args& prm);
186 void smartBlurStage2Multithreaded(
const Args& prm);
188 void mosaic(
DImg*
const orgImage,
DImg*
const destImage,
int SizeW,
int SizeH);
189 void mosaicMultithreaded(
const Args& prm);
193 void MakeConvolution(
DImg*
const orgImage,
DImg*
const destImage,
int Radius,
int Kernel[]);
194 void MakeConvolutionStage1Multithreaded(
const Args& prm);
195 void MakeConvolutionStage2Multithreaded(
const Args& prm);
197 DColor RandomColor(uchar*
const Bits,
int Width,
int Height,
bool sixteenBit,
int bytesDepth,
198 int X,
int Y,
int Radius,
200 uint*
const AverageColorR, uint*
const AverageColorG, uint*
const AverageColorB);
203 inline int Lim_Max(
int Now,
int Up,
int Max)
207 while (Now > Max - Up)
216 inline int GetIntensity (
int R,
int G,
int B)
218 return (
int)(R * 0.3 + G * 0.59 + B * 0.11);
222 inline int** Alloc2DArray (
int Columns,
int Rows)
226 int** lpcArray =
new int*[Columns];
228 for (
int i = 0 ; i < Columns ; ++i)
230 lpcArray[i] =
new int[Rows];
237 inline void Free2DArray (
int** lpcArray,
int Columns)
240 for (
int i = 0 ; i < Columns ; ++i)
242 delete [] lpcArray[i];
249 inline bool IsInside (
int Width,
int Height,
int X,
int Y)
251 bool bIsWOk = ((
X < 0) ?
false : (
X >=
Width ) ? false : true);
252 bool bIsHOk = ((Y < 0) ?
false : (Y >=
Height) ? false : true);
254 return (bIsWOk && bIsHOk);
257 inline int GetOffset(
int Width,
int X,
int Y,
int bytesDepth)
259 return (Y * Width * bytesDepth) + (
X * bytesDepth);
262 inline int GetOffsetAdjusted(
int Width,
int Height,
int X,
int Y,
int bytesDepth)
267 return GetOffset(Width,
X, Y, bytesDepth);
270 inline bool IsColorInsideTheRange (
int cR,
int cG,
int cB,
271 int nR,
int nG,
int nB,
274 if ((nR >= (cR - Range)) && (nR <= (cR + Range)))
276 if ((nG >= (cG - Range)) && (nG <= (cG + Range)))
278 if ((nB >= (cB - Range)) && (nB <= (cB + Range)))
291 Private*
const d =
nullptr;
Definition blurfxfilter.h:34
static QList< int > SupportedVersions()
Definition blurfxfilter.h:135
QString filterIdentifier() const override
Definition blurfxfilter.h:145
static int CurrentVersion()
Definition blurfxfilter.h:140
BlurFXFilterTypes
Definition blurfxfilter.h:40
@ ShakeBlur
Definition blurfxfilter.h:46
@ SoftenerBlur
Definition blurfxfilter.h:45
@ MotionBlur
Definition blurfxfilter.h:44
@ SmartBlur
Definition blurfxfilter.h:48
@ FarBlur
Definition blurfxfilter.h:43
@ RadialBlur
Definition blurfxfilter.h:42
@ FocusBlur
Definition blurfxfilter.h:47
@ FrostGlass
Definition blurfxfilter.h:49
static QString FilterIdentifier()
Definition blurfxfilter.h:128
Definition dimgthreadedfilter.h:31
Definition filteraction.h:33
Definition randomnumbergenerator.h:54
@ Width
Definition coredbfields.h:77
@ Height
Definition coredbfields.h:78
Definition datefolderview.cpp:34