digiKam
Loading...
Searching...
No Matches
charcoalfilter.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 : Charcoal threaded image filter.
8 *
9 * SPDX-FileCopyrightText: 2005-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
10 * SPDX-FileCopyrightText: 2010 by Martin Klapetek <martin dot klapetek at gmail dot com>
11 *
12 * SPDX-License-Identifier: GPL-2.0-or-later
13 *
14 * ============================================================ */
15
16#pragma once
17
18// Local includes
19
20#include "digikam_export.h"
21#include "dimgthreadedfilter.h"
22#include "digikam_globals.h"
23
24namespace Digikam
25{
26
27class DIGIKAM_EXPORT CharcoalFilter : public DImgThreadedFilter
28{
29 Q_OBJECT
30
31public:
32
33 explicit CharcoalFilter(QObject* const parent = nullptr);
34 explicit CharcoalFilter(DImg* const orgImage,
35 QObject* const parent = nullptr,
36 double pencil = 5.0,
37 double smooth = 10.0);
38 ~CharcoalFilter() override;
39
40 static QString FilterIdentifier()
41 {
42 return QLatin1String("digikam:CharcoalFilter");
43 }
44
45 static QString DisplayableName();
46
47 static QList<int> SupportedVersions()
48 {
49 return QList<int>() << 1;
50 }
51
52 static int CurrentVersion()
53 {
54 return 1;
55 }
56
57 QString filterIdentifier() const override
58 {
59 return FilterIdentifier();
60 }
61
62 FilterAction filterAction() override;
63 void readParameters(const FilterAction& action) override;
64
65private:
66
67 void filterImage() override;
68 bool convolveImage(const unsigned int order, const double* kernel);
69 int getOptimalKernelWidth(double radius, double sigma);
70 void convolveImageMultithreaded(uint start,
71 uint stop,
72 double* normal_kernel,
73 double kernelWidth);
74
75private:
76
77 class Private;
78 Private* const d = nullptr;
79};
80
81} // namespace Digikam
Definition charcoalfilter.h:28
static QString FilterIdentifier()
Definition charcoalfilter.h:40
QString filterIdentifier() const override
Definition charcoalfilter.h:57
static QList< int > SupportedVersions()
Definition charcoalfilter.h:47
static int CurrentVersion()
Definition charcoalfilter.h:52
Definition dimgthreadedfilter.h:31
Definition dimg.h:52
Definition filteraction.h:33
Definition datefolderview.cpp:34