digiKam
Loading...
Searching...
No Matches
oilpaintfilter.h
Go to the documentation of this file.
1/* ============================================================
2 *
3 * This file is a part of digiKam project
4 * https://www.digikam.org
5 *
6 * Date : 2005-05-25
7 * Description : Oil Painting threaded image filter.
8 *
9 * SPDX-FileCopyrightText: 2005-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
10 * SPDX-FileCopyrightText: 2006-2010 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
11 * SPDX-FileCopyrightText: 2010 by Martin Klapetek <martin dot klapetek at gmail dot com>
12 *
13 * SPDX-License-Identifier: GPL-2.0-or-later
14 *
15 * ============================================================ */
16
17#pragma once
18
19// Local includes
20
21#include "digikam_export.h"
22#include "dimgthreadedfilter.h"
23#include "digikam_globals.h"
24
25namespace Digikam
26{
27
28class DIGIKAM_EXPORT OilPaintFilter : public DImgThreadedFilter
29{
30 Q_OBJECT
31
32public:
33
34 explicit OilPaintFilter(QObject* const parent = nullptr);
35 explicit OilPaintFilter(DImg* const orgImage, QObject* const parent = nullptr,
36 int brushSize = 1, int smoothness = 30);
37 ~OilPaintFilter() override;
38
39 static QString FilterIdentifier()
40 {
41 return QLatin1String("digikam:OilPaintFilter");
42 }
43
44 static QString DisplayableName();
45
46 static QList<int> SupportedVersions()
47 {
48 return QList<int>() << 1;
49 }
50
51 static int CurrentVersion()
52 {
53 return 1;
54 }
55
56 QString filterIdentifier() const override
57 {
58 return FilterIdentifier();
59 }
60
61 FilterAction filterAction() override;
62 void readParameters(const FilterAction& action) override;
63
64private:
65
66 void filterImage() override;
67 void oilPaintImageMultithreaded(uint start, uint stop);
68 DColor MostFrequentColor(const DImg& src, int X, int Y, int Radius, int Intensity,
69 uchar* intensityCount, uint* averageColorR,
70 uint* averageColorG, uint* averageColorB);
71 inline double GetIntensity(uint Red, uint Green, uint Blue);
72
73private:
74
75 class Private;
76 Private* const d = nullptr;
77};
78
79} // namespace Digikam
Definition dcolor.h:33
Definition dimgthreadedfilter.h:31
Definition dimg.h:52
Definition filteraction.h:33
Definition oilpaintfilter.h:29
static QList< int > SupportedVersions()
Definition oilpaintfilter.h:46
static int CurrentVersion()
Definition oilpaintfilter.h:51
QString filterIdentifier() const override
Definition oilpaintfilter.h:56
static QString FilterIdentifier()
Definition oilpaintfilter.h:39
#define X
Definition datefolderview.cpp:34